0

我是一个新手,NSUserDefaults并且正在努力理解一些我认为对于大多数阅读本文来说可能很简单的东西。

NSUserDefaults如果它存在于以下代码中,我正在尝试检索一个可变的字符串数组:

NSMutableArray *globalAppsArray;

if([[NSUserDefaults standardUserDefaults] objectForKey:@"globalAppsArray"] != nil)
{
    NSLog(@"Array found. Contents: %@", globalAppsArray);        
}
else
{
    globalAppsArray = [[NSMutableArray alloc] initWithCapacity:0];
}

在向其中添加任何新数据后,我想保存它:

[[NSUserDefaults standardUserDefaults] setObject:globalAppsArray forKey:@"globalAppsArray"];
[[NSUserDefaults standardUserDefaults] synchronize];

当我重新启动应用程序时,发现可变数组正常,但内容为null.

有人可以告诉我我错过了什么吗?

4

2 回答 2

4

它应该是这样的:

NSMutableArray *globalAppsArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"globalAppsArray"];

if(globalAppsArray != nil)
{
    NSLog(@"Array found. Contents: %@", globalAppsArray);
}
else
{
    globalAppsArray = [[NSMutableArray alloc] initWithCapacity:0];
}
于 2013-04-23T13:54:46.767 回答
3

检查您的代码一次,

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *globalAppsArray = [[defaults objectForKey:@"globalAppsArray"] mutableCopy];
if(globalAppsArray)
    NSLog(@"Array found. Contents: %@", globalAppsArray);
else
    globalAppsArray = [NSMutableArray array];
于 2013-04-23T13:53:53.423 回答