通过runtime对类别进行属性的扩展

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过runtime对类别进行属性的扩展相关的知识,希望对你有一定的参考价值。

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

以上是关于通过runtime对类别进行属性的扩展的主要内容,如果未能解决你的问题,请参考以下文章

类别和继承的区别

runtime在实际开发中的应用-为类别添加属性

类别,类扩展

OC中类别(Category)的属性

如何使用 Pytorch 将二进制迁移学习模型扩展到多个图像类别?

objc runtime 动态增加属性-备用(?)