如何将NSMutableArray的内容复制到iphone应用程序中的另一个NStArray?

时间:2012-09-24 10:33:14

标签: iphone nsmutablearray nsarray

我有两个数组,一个是NSMutableArray,一个是NSArray,我想在NSArray中存储NSMutableArray的内容,但是它不适用于我发送异常无法识别的选择器。

myArray=[[NSArray alloc] initWithArray:appDelegate.surveyAnswersScreenOne];

注意,SurveyAnswerScreenOneNSMutableArray

3 个答案:

答案 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];