美文网首页
用objc/runtime给类别扩展属性

用objc/runtime给类别扩展属性

作者: iStig | 来源:发表于2015-01-28 15:05 被阅读325次

一般情况下 我们用类别扩展方法,现在我们能给它扩展属性

category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性

属性 其实就是 get/set 方法。

我们可以使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性实现 动态向类中添加 方法

@interfaceNSObject (CategoryWithProperty)

@property (nonatomic, strong) NSObject*property;

@end
@implementationNSObject (CategoryWithProperty)



- (NSObject *)property {

returnobjc_getAssociatedObject(self, @selector(property));

}

- (void)setProperty:(NSObject *)value {

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

}

@end

代码下载

相关文章

  • 用objc/runtime给类别扩展属性

    一般情况下 我们用类别扩展方法,现在我们能给它扩展属性 category使用 objc_setAssoci...

  • iOS Runtime的使用

    导入头文件#import 为类别添加属性 一些常用方法

  • Button 使用objc_setAssociatedObjec

    利用Runtime不仅可以使用objc_setAssociatedObject方法来为类别中添加属性 也可以这样...

  • iOS底层学习:类的扩展和关联对象

    类的扩展和分类 category:分类、类别 给类增加方法 不能添加成员变量 可以使用runtime给分类添加属性...

  • 给类别加属性runtime

    遇到一个问题,写了一个分类,但原先类的属性不够用。添加一个属性,调用的时候崩溃了,说是找不到getter、sett...

  • iOS--分类和扩展

    类别与类扩展的区别 ①类别中原则上只能增加方法(能添加属性的的原因只是通过runtime解决无setter/get...

  • Runtime总结

    参考: Objc Runtime 总结runtime 一, runtime 关联属性 1,设置关联值 object...

  • Extension给已有类添加属性③

    给PHAsset类扩展一个 sizeString 的存储属性 *** objc_setAssociatedObje...

  • ios中给分类添加属性

    ios中利用类别给已有的类扩展方法是可以的,但是如果直接的添加属性是会报错的。利用runtime可以达到添加属性的...

  • ios中给分类添加属性

    ios中利用类别给已有的类扩展方法是可以的,但是如果直接的添加属性是会报错的。利用runtime可以达到添加属性的...

网友评论

      本文标题:用objc/runtime给类别扩展属性

      本文链接:https://www.haomeiwen.com/subject/dzflxttx.html