码迷,mamicode.com
首页 > 其他好文 > 详细

初学runtime--实现篇02(Category增加属性)

时间:2015-06-10 18:51:36      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

 

    在IOS开发中,Category默认不能增加属性的,但操作runtime就能轻松搞定。

 

 1.给NSObject添加分类NSObject (Extension),

   1> 在NSObject+Extension.h中添加

    @property (nonatomic, copy) NSString *value;

   

   2> 在NSObject+Extension.m中  

  

#import "NSObject+Extension.h"

#import <objc/runtime.h>

 

@implementation NSObject (Extension)

   static char valueKey; // 关联属性值的key

- (void)setValue:(NSString *)value

{

    // 将某个值 跟 某个对象关联起来

    // 将某个值 存储到 某个对象中

    objc_setAssociatedObject(self, &valueKey, value, OBJC_ASSOCIATION_COPY_NONATOMIC);

}

 

- (NSString *)value

{

     // 通过valueKey取value值

    return objc_getAssociatedObject(self, &valueKey);

}

@end 

2. 在viewController中测试

- (void)viewDidLoad {

    [super viewDidLoad];

    

    NSString *str = @"jack";

     str.value = @"abc"; 

   

    self.value = @"哈哈哈";

 NSLog(@"%@ ", str.name, self.name);

}

运行结果:

2015-06-10 17:07:27.488 运行时的应用-分类增加属性[1698:63864] abc 哈哈哈#import <objc/runtime.h>

 

初学runtime--实现篇02(Category增加属性)

标签:

原文地址:http://www.cnblogs.com/guozhong/p/4566773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!