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位置的字符串

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 来源于CocoaChina 在工作中, 很多小伙伴都会在PCH文件定义一些常用的宏,但是又怕写这些简单的宏浪费时间...
    iOS学末阅读 832评论 3 7
  • /**获取屏幕宽度与高度 导航,tabbar高度*/ #define SCREEN_WIDTH [UIScree...
    MUYO_echo阅读 708评论 0 3
  • //通用宏定义 #ifndefdefine_h #definedefine_h //获取系统对象 #definek...
    yanhaiqiang阅读 603评论 0 1
  • 判断真机还是模拟器运行代码 系统版本 颜色宏定义 屏幕尺寸 自定义打印 本地保存 空对象判断 线程执行方法 宏判断...
    梦在旅途阅读 915评论 0 0
  • 就是愛禪繞作品3-4 Msst是由官方解構,是官方圖樣 Diane Knauff 的作品 sue jacobs 的作品
    hh妈阅读 242评论 0 0