ios 实例类的变量 赋值失败
多次遇到类似问题目前只找到原因,在此记录。找到解决方案时,再补充添加。
问题描述:
声明类A,类B,主类M.
在类A中声明一个变量数组testArray;
@property (nonatomic, strong) NSArray *testArray;
在主类M中实例化类A,并添加视图;
A *a = [ [A alloc] initWithFrame:CGRectMake(0,0,20,20)];
[self addSubView:a];
在类B中,由A的实例获取变量数组testArray,并对数组赋值;
A *a = [ [A alloc] init];
a.testArray = @[@"m",@"n",@"q"];
结果在A类中调用数组testArray,testArray为空,赋值失败。
原因:
数组testArray由类A的不同实例调用,分配的内存不同,所以B类中赋值的数组testArray,和A类中调用的数组testArray不是同一个数组。赋值失败。
目前的解决思路:
1、对A类单例化,保证工程共只存在一个A的实例;(若工程中存在多个单例类,是否有弊端?)
2、声明静态数组testArray;(测试不成功)
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。