我正在使用 NSUserDefaults 将 NSMutableArray 和 NSMutableDictionery 保存为
NSUserDefaults *nsdefaults = [NSUserDefaults standardUserDefaults];
NSMutableDictionary *appDetail = [[NSMutableDictionary alloc]initWithDictionary:[sbjasonObj objectWithString:result]];
if ([appDetail objectForKey:KStores]) {
NSArray *stores = [appDetail objectForKey:KStores];
NSLog(@"%@",stores);
[nsdefaults setObject:stores forKey:KStores];
}
NSString *colorString = [appDetail objectForKey:KColorTheme];
[nsdefaults setObject:colorString forKey:KColorTheme];
NSString *lookBookURL = [appDetail objectForKey:kLookBook];
NSLog(@"look_book%@",lookBookURL);
[nsdefaults setObject:lookBookURL forKey:kLookBook];
[nsdefaults setObject:appDetail forKey:kGetAppDetail];//using same key to save in sandbox
[nsdefaults synchronize];
[appDetail release];
并将此数据检索为
shopsLocations = [[NSArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults]
objectForKey:KStores]];
NSLog(@"shopsLocations: %@",shopsLocations);
它给了我“shopsLocations
)"表示 0 值。此外,当我尝试检索“appDetail”时,它也会给出零键和值。
我的问题是
1. 我可以在 NSUserDefaults 中保存数组和字典吗?
2. NSUserDefaults中的数据什么时候刷出来?
3. 如何从 NSUserDefaults 中获取数据?
提前致谢。
Best Answer-推荐答案 strong>
你的 stores 数组的内容是什么?
如果您想保存到 NSUserDefaults(使用 setObject:forKey: ),则唯一允许的内容是可以转换为属性列表的对象。这些对象是 NSArray 、NSDictionary 、NSString 、NSData 、NSDate 和 NSNumber (int、float、bool)。
如果您想将其他内容保存到 NSUserDefaults ,您必须先创建一个 NSData 对象。您可以在 NSKeyedArchiver 的帮助下完成此操作.
关于iphone - NSUserDefaults 在我检索之前刷新数据,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/8891624/
|