关于cocoa 运行时runtime

关于cocoa 分类,我们经常看到这样一种说法,分类不能有自己的属性变量

先看个常见的例子

当把NSString *ptx; 写到class extension中,这样编码 ok的,不会出现任何警告和编译错误

继续看

当把NSString *ptx; 写到class category中,这样编码 直接爆红了!!!

Use of undeclared identify '_ptx'  ? 这也就验证了上面的结论 分类不能有自己的属性变量

继续 (传说过 objective-c 是一门真正的动态语言)

由于objc_getAssociatedObject 和 objc_setAssociatedObject 这2个c函数 定义在runtime.h中

你需要#import <objc/runtime.h>

原文地址:https://www.cnblogs.com/xzoscar/p/4985615.html