iOS 中 为cagetory 添加属性
我们知道 在iOS中cagetory里面只能添加方法 ,如果我们想添加属性 就要用到
<objc/runtime.h>
中
OBJC_EXPORT void objc_setAssociatedObject(idobject, constvoid *key, id value, objc_AssociationPolicy policy)
__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_1);
OBJC_EXPORT id objc_getAssociatedObject(idobject, constvoid *key)
__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_1);
例如
@interface UIButton(custom)
@property (nonatomic, copy) NSIndexPath *selectIndexPath;
@end
staticNSIndexPath *k_SelectIndexPath;
@implementation UIButton(custom)
@dynamic selectIndexPath;
- (void)setSelectIndexPath:(NSIndexPath *)selectIndexPath
{
objc_setAssociatedObject(self, &k_SelectIndexPath, selectIndexPath, OBJC_ASSOCIATION_COPY);
}
- (NSIndexPath*)selectIndexPath
{
returnobjc_getAssociatedObject(self, &k_SelectIndexPath);
}
@end
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。