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

iOS类型里面添加属性

2016-05-17 09:43 246 查看
1、在.h里面添加属性

#import <UIKit/UIKit.h>

@interface UIViewController(UIViewExtend)

@property (nonatomic,retain)NSString
*key;

@end

2、在.m文件里面添加属性的关联

#import "UIViewController+UIViewExtend.h"

#import <objc/runtime.h>

//定义key属性的唯一标识,存取都是根据该标识处理的

static void *propertyKey = (void *)@"propertyKey";

@implementation UIViewController(HGJExtend)

//key属性的get方法,

//该方法根据propertyKey唯一标示取出对应的值

- (NSString *)key

{

returnobjc_getAssociatedObject(self,propertyKey);

}

//key属性的set方法,该方法根据OBJC_ASSOCIATION_COPY_NONATOMIC定义的存放策略

//把key1的值存储到propertyKey对应的内存里面

- (void)setKey:(NSString *)key1

{

objc_setAssociatedObject(self,propertyKey,key1,OBJC_ASSOCIATION_COPY_NONATOMIC);

}

3、OBJC_ASSOCIATION_COPY_NONATOMIC属性对应.h里面定义的nonatomic和retain字断,

按照前面属性的设置来定义该字断类型:

typedef OBJC_ENUM(uintptr_t, objc_AssociationPolicy) {

OBJC_ASSOCIATION_ASSIGN = 0, //assign

OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1,//nonatomic, retain

OBJC_ASSOCIATION_COPY_NONATOMIC = 3, //nonatomic, copy

OBJC_ASSOCIATION_RETAIN = 01401, //retain

OBJC_ASSOCIATION_COPY = 01403 //copy

};

4、使用

[self setKey:@"hello extend"];

[self key];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: