热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

自动提示宏--输入什么属性,就把属性自动生成OC字符串

自定义下面的宏就拥有自动提示属性功能#definekeyPath(objc,keyPath)@(((void)objc.keyPath,#keyPath));

自定义下面的宏就拥有自动提示属性功能

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

一:作用和使用场景

  • 自动提示宏意义:输入什么属性,就把属性自动生成OC字符串.
  • 自动提示宏作用:输入某个对象的某个属性的时候有自动提示功能
  • 自动提示宏应用场景:在KVO,KVC中使用自动提示宏,监听某个对象某个属性,通过自动提示宏,就可以防止输入错误.

二:自动提示宏如何实现:

  • 了解宏的实现原理,每输入一个字母就会拷贝一次,首先会把之前的内容补齐

  • 在宏里面如果在参数前添加了#,就会把参数变成C语言字符

  • 在代码中,输入某个对象的某个属性的时候都有提示,可以在宏里面也有做这样的操作,假设在宏里面输入某个对象的某个属性.

  • 最终宏需要把宏里面的keyPath这个参数生成一个OC字符串

  • 使用逗号表达式,永远等于最右边的值,在右边生成一个keyPath的OC字符串

  • 一旦把一个值强转成void类型,表示不使用这个值

  • 在宏里面只能做到把参数变成c字符串,因此先生成c字符串,在转换成OC字符串.

  • 在宏里面如果在参数前添加了#,就会把参数变成C语言字符串 #keyPath = “keyPath”

  • c语言如何转OC字符串,也是包装一下 @(“c”)


推荐阅读
author-avatar
怪话greenup
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有