美文网首页
自动提示`宏`

自动提示`宏`

作者: 闲得一B | 来源:发表于2016-05-07 17:21 被阅读69次

自动提示宏:能在输入宏的时候像属性一样让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语言的字符串。但是,会有警告⚠️

![第二步.png](https://img.haomeiwen.com/i1170347/02ec85bca08ed38f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

第三步:去除警告
警告的原因:还有一个结果没有使用。
(objc.keyPath,#keyPath)是个逗号表达式,逗号表达式只取后面的值,所以给第一个值加void,强转类型为void,表示不使用第一个值的结果。

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

第四步:将C语言字符串转换成OC字符串使用 @(C语言字符串)

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

注意:括号一个不能少。

相关文章

  • iOS - 自动提示宏的设置

    自动提示宏:就是在输入宏的时候有提示功能 应用场景: 想输入对象的属性的时候有提示 示例 自动提示宏:(objc....

  • iOS中常用的宏定义

    iOS自动提示宏

  • 自动提示`宏`

    自动提示宏:能在输入宏的时候像属性一样让XCode有提示功能 解析 第一步:定义一个宏 define keyPat...

  • 自动提示宏

    自动提示宏:能在输入属性字符串的时候像属性一样让Xcode有提示功能 一.宏代码: 比如监听view的frame的...

  • iOS - 自动提示宏

    自动提示宏:能在输入宏的时候像属性一样让Xcode有提示功能 一.宏代码: 比如监听view的frame的变化不使...

  • iOS 自动提示宏

    当我们使用KVO监听属性的时候, 属性必须要写对,但是这个属性没有提示 所以我们想要写一个自动的提示宏来保证这个属...

  • 解决Xcode下自动提示问题

    这是原文,不能自动提示 这是剪切在黏贴后,可以自动提示

  • 11.1PHPstorm的日常用快捷键收集

    关于自动提示: 1、提示函数参数:Ctrl+P2、CTRL+J 自动代码提示,自动补全 3、上下移动代码块Ctrl...

  • Eclipse代码自动提示,eclipse设置代码自动提示

    某度的教程 eclipse如何自动提示? 代码自动提示快捷键 这是我当年参照的自动提示。。。。而我现在要做的是取消...

  • weex笔记(8)一些weex-studio -- vscode

    插件 自动提示路径插件AutoFileName 代码美化Beautify、vetur vue代码片段自动提示Vue...

网友评论

      本文标题:自动提示`宏`

      本文链接:https://www.haomeiwen.com/subject/bjfsrttx.html