1.只会生成setter和getter方法声明; 2.protocol中是希望遵守我协议的对象能实现该属性;3.category需要使用关联对象:objc_setAssociatedObject和objc_getAssociatedObject