相关疑难解决方法(0)

NSUserDefaults不会保存NSDictionary

我正在编写一个使用NSUserDefaults作为数据存储机制的应用程序,并且在尝试保存数据时遇到问题(符合属性列表协议):

+ (BOOL)storeAlbum:(Album *)album
{
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    NSMutableDictionary *albums = (NSMutableDictionary *)[prefs objectForKey:@"my_adventure_book_albums"];
    NSLog(@"Existing albums: %@",albums);
    if (!albums)
        albums = [NSMutableDictionary dictionaryWithObject:album forKey:@"album"];
    else
        [albums setObject:album forKey:@"album"];
    NSLog(@"%@",album);
    [prefs setObject:albums forKey:@"my_adventure_book_albums"];
    return [prefs synchronize];
}
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

2010-06-29 17:17:09.929 MyAdventureBook[39892:207] Existing albums: (null)
2010-06-29 17:17:09.930 MyAdventureBook[39892:207] test
2010-06-29 17:17:09.931 MyAdventureBook[39892:207] *** -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '{
    album = test;
}' of class 'NSCFDictionary'.
Run Code Online (Sandbox Code Playgroud)

相册的描述方法如下:

- (NSString *)description
{
    // Convert to a NSDictionary for serializing …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ipad

2
推荐指数
2
解决办法
8615
查看次数

标签 统计

ipad ×1

iphone ×1

objective-c ×1