OStack程序员社区-中国程序员成长平台

标题: iphone - NSUserDefaults 在我检索之前刷新数据 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 18:56
标题: iphone - NSUserDefaults 在我检索之前刷新数据

我正在使用 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-推荐答案


你的 stores 数组的内容是什么?

如果您想保存到 NSUserDefaults(使用 setObject:forKey:),则唯一允许的内容是可以转换为属性列表的对象。这些对象是 NSArrayNSDictionaryNSStringNSDataNSDateNSNumber(int、float、bool)。

如果您想将其他内容保存到 NSUserDefaults,您必须先创建一个 NSData 对象。您可以在 NSKeyedArchiver 的帮助下完成此操作.

关于iphone - NSUserDefaults 在我检索之前刷新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8891624/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4