2012-03-05 89 views
0

感谢您的时间和阅读。我想要做的是找出为什么这个NSLog告诉我NSArray总是空的,不管是什么。我在想,问题在于我发起了NSMutableArray错误。你能否看看并决定我是否做得对,如果可能的话给我一种方法将数组传递给NSMutableArray添加NSArray到NSMutableArray

谢谢!

//Get Defaults 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSArray *favoriteArray = [[defaults objectForKey:@"favorites"] copy]; 

//Declares Mutable Array 
self.favorites = [[NSMutableArray alloc] initWithObjects:favoriteArray, nil]; 
NSLog(@"array: %@", favorites); 

更新:我想通了。事实证明,你有initWithArray声明它,而不是试图将其添加为一个对象

解决方案:

- (void)viewDidLoad { 

    //Get Defaults 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    NSArray *favoriteArray = [[defaults objectForKey:@"favorites"] copy]; 

    //Declares Mutable Array 
    self.favorites = [[NSMutableArray alloc] initWithArray:favoriteArray]; 

    [super viewDidLoad]; 
} 
+0

你确定你的地方设置objectForKey?您可能需要立即调用同步才能看到它。设置“收藏夹”键的代码在哪里? – Vinnie 2012-03-05 04:04:14

+0

请注意,您正在记录'favoriteArray',而不是'收藏夹'。 – ThomasW 2012-03-05 04:04:19

+0

我修正了日志问题,当我发布这个时,这是我自己的错误。无论如何,我也添加了代码。你们中的任何一个人看到问题? – JTApps 2012-03-05 04:11:54

回答

4

做到这一点的方法是使用arrayWithArray,这里是你怎么做:

myNSMutableArray = [NSMutableArray arrayWithArray:myArray]; 
0

你曾经设置你的用户默认对象的“收藏夹”键?

+0

它在后面的方法中设置,我可以发布它,如果你想。我将一个URL字符串传递到“收藏夹”可变数组中,然后在默认值中保存“收藏夹”数组。 – JTApps 2012-03-05 04:05:50

+0

@JTApps按照什么顺序执行? – ThomasW 2012-03-05 04:18:19

+0

我明白了!你不能将一个数组作为一个对象添加到一个可变数组中,我不得不使用initWithArray – JTApps 2012-03-05 04:20:42