我正在使用 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 中获取数据?
提前致谢。
你的 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/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |