您的位置:首页 > 移动开发 > IOS开发

给IOS对象添加动态属性

2013-12-01 15:34 239 查看
IOS属性和方法的扩展:
category与associative作为objective-c的扩展机制的两个特性,category即类型,可以通过它来扩展方法;associative,可以通过它来扩展属性;要用它必须使用<objc/runtime.h>的头文件,然后就可以自由使用objc_getAssociatedObject以及objc_setAssociatedObject,我们来看下这两个方法实现:
@interface NSObject (CocoaExtras)

@property (nonatomic,retain)NSMutableDictionary* mutableUserInfo;
@end

char* const ASSOCIATION_MUTABLE_USER_INFO =
"ASSOCIATION_MUTABLE_USER_INFO";

@implementation NSObject (CocoaExtras)

//添加属性扩展set方法
-(void) setMutableUserInfo:(NSMutableDictionary *) m {
objc_setAssociatedObject(self,ASSOCIATION_MUTABLE_USER_INFO,m,OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

//添加属性扩展get方法
-(NSMutableDictionary*) mutableUserInfo {
NSMutableDictionary* userInfo =objc_getAssociatedObject(self,ASSOCIATION_MUTABLE_USER_INFO);
return userInfo;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: