我有两个数组,一个是NSMutableArray,一个是NSArray,我想在NSArray中存储NSMutableArray的内容,但是它不适用于我发送异常无法识别的选择器。
myArray=[[NSArray alloc] initWithArray:appDelegate.surveyAnswersScreenOne];
注意,SurveyAnswerScreenOne
是NSMutableArray
答案 0 :(得分:2)
你可以通过多种方式实现这一目标 -
NSArray * myArray = [appDelegate.surveyAnswersScreenOne copy];
NSArray * myArray = [NSArray arrayWithArray:appDelegate.surveyAnswersScreenOne];
NSArray * myArray = [[NSArray alloc]initWithArray:appDelegate.surveyAnswersScreenOne];
但首先你的appDelegate.surveyAnswersScreenOne
应该有对象。
答案 1 :(得分:0)
从我们在这里看到的,你的可变数组很可能是零。在你的app delegate中查看它的创建。如果创建正确,请检查是否保留。这是一个强有力的参考吗?
@propery(nonatomic, strong) NSMutableArray *surveyAnswersScreenOne;
一,我会使用便捷方法:
myArray = [NSArray arrayWithArray:appDelegate.surveyAnswersScreenOne];
如果surveyAnswersScreenOne是一个有效的数组,可变或其他,这应该有效。尝试将其打印到控制台以确保。如果surveyAnswersScreenOne为nil,则返回空数组,其中alloc initWithArray将失败。 检查你这样的可变数组。
NSLog(@"Mutable array is %@", appDelegate.surveyAnswersScreenOne);
答案 2 :(得分:0)
您是否为appDelegate
?
appDelegate = (yourDelegateClass *)[[UIApplication sharedApplication]delegate];
如果是,那么其他答案应该有效!
myArray = [NSArray arrayWithArray:appDelegate.surveyAnswersScreenOne];