iOS中常用的宏定义

iOS自动提示宏

01.当我们使用kvo或者做动画的时候需要使用keyPath,但是keyPath是字符串类型,为了防止输入错误,我们可以使用下面的自动提示宏
 [self.mainView addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionNew context:nil];

02.自动提示宏如下:
#define keyPath(objc,keyPath) @(((void)objc.keyPath, #keyPath))

接下来简单对这个宏定义进行解释:
  - 宏定义里面的#号,会自动把后面的参数变成C语言的字符串
  - @(基本类型)可以对基本类型进行装箱操作(也就是基本类型转换为OC的对象)
  - 对于逗号表达式,例如:`(5, 10, 2)`会去最后一个值,为了防止前面两个值因为没有使用报警告可以这样写((void)5, (void)10, 2),这个括号相当于return 2,所以为了把整个值转变成对象类型可以再加一个括号@(((void)5, (void)10, 2))

- 对于@(((void)objc.keyPath, #keyPath))来说就是取keyPath位置的字符串

你可能感兴趣的:(iOS中常用的宏定义)