关于协议和分类中的@property 在@protocol中使用@property只会生成getter 和setter方法,我们使用属性的目的是希望遵守我们协议的对象能够实现该属性 category中使用@property也只是会生成getter和setter方法的声明,无法生成实现和带下划线的成员属性,如果我们真的需要给分类添加属性的实现,需要借助于运行时(runtime)的两个方法: objc_setAssociatedObject objc_getAssociatedObject