iOS中常用的宏定义
2016-06-05 本文已影响196人
Boy_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位置的字符串