我是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
。
有人可以告诉我我错过了什么吗?
答案 0 :(得分:4)
它应该是这样的:
NSMutableArray *globalAppsArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"globalAppsArray"];
if(globalAppsArray != nil)
{
NSLog(@"Array found. Contents: %@", globalAppsArray);
}
else
{
globalAppsArray = [[NSMutableArray alloc] initWithCapacity:0];
}
答案 1 :(得分:3)
检查您的代码一次,
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *globalAppsArray = [[defaults objectForKey:@"globalAppsArray"] mutableCopy];
if(globalAppsArray)
NSLog(@"Array found. Contents: %@", globalAppsArray);
else
globalAppsArray = [NSMutableArray array];