iOS学习Tool

iOS - 自动提示宏

2018-10-20  本文已影响2人  codeTao

自动提示宏:能在输入宏的时候像属性一样让Xcode有提示功能

一.宏代码:

#define keyPath(objc,keyPath) @(((void)objc.keyPath,#keyPath))

比如监听view的frame的变化
不使用自动提示宏:

[self.view addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionNew context:nil];

使用自动提示宏:

[self.view addObserver:self forKeyPath:keyPath(self.view, frame)  options:NSKeyValueObservingOptionNew context:nil];

二.推导过程:

#define keyPath(objc,keyPath) (objc.keyPath,keyPath)

宏的操作原理:每输入一个子母就会直接将宏右边的拷贝,并且会自动补齐前面的内容。

#define keyPath(objc,keyPath) (objc.keyPath,#keyPath)

在宏里面添加一个#号,宏里面的#会自动将后面的参数变成C语言的字符串。但是,会有警告⚠️

keyPath.png
#define keyPath(objc,keyPath) ((void)objc.keyPath,#keyPath)
#define keyPath(objc,keyPath) @(((void)objc.keyPath,#keyPath))

注意:括号一个不能少。

上一篇下一篇

猜你喜欢

热点阅读