博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分类添加属性
阅读量:4932 次
发布时间:2019-06-11

本文共 738 字,大约阅读时间需要 2 分钟。

#import "ClassA.h"@interface ClassA (test)@property(cpoy,nonatomic)NSString *str;-(void)test1;@end
分类不可以直接添加属性,但是如果你直接添加属性则会报错。如上,如果为ClassA 添加属性,再编译时不会报错,但是再运行阶段就会找不到实例变量str。

2015-03-02 08:19:32.300 Study[978:303] -[ClassA setStr:]: unrecognized selector sent to instance 0x100202e50

如果我们需要必须要添加属性时,我们可以采用关联引用添加。

#import "ClassA+test.h"#import 
@implementation ClassA (test)static NSString *strKey;//添加关联引用的Key,其地址唯一即可,将self与其地址添加关联,关联的内容就是需要添加的属性。-(NSString *)str{ return objc_getAssociatedObject(self, &strKey);//取出关联内容}-(void)setStr:(NSString *)str{ objc_setAssociatedObject(self, &strKey, str, OBJC_ASSOCIATION_COPY);//设置关联}-(void)test1{ NSLog(@"ok"); }@end

转载于:https://www.cnblogs.com/dengzhuli/p/4415564.html

你可能感兴趣的文章
ie7 setAttribute 【转】
查看>>
struts2标签库----控制标签详解
查看>>
oracle分区的名称和值要一致
查看>>
Vue笔记:在项目中使用 SCSS
查看>>
我的经典算法
查看>>
JQery 中的 $(".bb:eq(1)") eq () 解释。。
查看>>
实验 1-1
查看>>
洛谷P3943 星空
查看>>
巨蟒django之CRM4 一些小功能
查看>>
阅读心得14:《新浪微博用户兴趣建模系统架构》
查看>>
能力、责任心、态度
查看>>
Linux中find常见用法示例
查看>>
找工作不要盲目崇拜体制内(转自北邮论坛)
查看>>
根据淘宝商品 num_iid 批量生成淘宝客链接的 PHP 函数
查看>>
Ibatis 配置
查看>>
虫师Selenium2+Python_3、Python基础
查看>>
Android关于listview中显示网络图片的问题
查看>>
Javascript Jquery 中的数组定义与操作
查看>>
Spring的一次踩坑——Could not resolve placeholder 'jdbc.driver' in string value "${jdbc.driver}"...
查看>>
笔试的感觉
查看>>