iOS的类别中只能用runtime添加属性。

原因是,在类别中可以添加属性,却无法添加成员变量,该列别中无法用常规方法实现get和set方法。

此时是应该用runtime去写get和set。

使用objc_setAssociatedObject/objc_getAssociatedObject实现添加属性,其实就是get/set方法。

在类别的.h方法中添加属性property。

@interface UILabel (my)

@property(nonatomic,strong)NSObject*property;

@end

在.m文件中写get/set方法

@implementation UILabel (my)

- (NSObject*)property

{

     returnobjc_getAssociatedObject(self,@selector(property));

}

- (void)setProperty:(NSObject*)value

{

    objc_setAssociatedObject(self,@selector(property), value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

}

这样就给label添加了property属性。

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

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,826评论 0 9
  • 第一章 最初的最初 ...
    格格乌阅读 3,142评论 1 4
  • so丶H阅读 1,339评论 0 1
  • APT Practice https://www.debian.org/doc/manuals/debian-re...
    南北东西总相随阅读 1,911评论 0 0
  • 坏事 “e袋洗”是荣昌服务2013年11月28日感恩节当天推出的互联网洗衣产品,将洗衣服务标准化,顾客可按袋支...
    豆粉膜好好吃阅读 1,371评论 0 0