基本上我有一个我想存储在NSUserDefaults中的数组。 pageDict是当地的NSDictionary LyteData用来存放东西 层级从lyteData.textbookDictArray ---> lyteData.pagesDictArray ---> pageDict(NSDictionary中)尝试在NSUserDefaults中存储nsdictionaries数组时出错
[pageDict setObject:textbookImage forKey:@"image"];
[pageDict setObject:textbookName forKey:@"name"];
[pageDict setObject:page forKey:@"page"];
[pageDict setObject:nameOfClass forKey:@"class"];
LyteData *lyteData = [LyteData sharedManager];
[lyteData.pagesDictArray addObject:pageDict];
[lyteData.textbookDictArray addObject:lyteData.pagesDictArray];
NSLog(@"array: %@", lyteData.pagesDictArray);
NSLog(@"textbook array: %@", lyteData.textbookDictArray);
//THIS CODE IS FOR SAVING THE ARRAY OF TEXTBOOKS AS USERDEFAULT
[[NSUserDefaults standardUserDefaults]
setObject:lyteData.textbookDictArray forKey:@"textbookArray"];
我得到这个错误去一个Singleton类:
Attempt to set a non-property-list object (
{
class = hb;
image = "<UIImage: 0x165c43d0>";
name = fv;
page = 25;
}
) as an NSUserDefaults value for key textbookArray
如何将该数组存储在NSUserDefaults中?
'NSUserDefaults'只能存储'premitive'对象(如NSArray,NSDictionary,NSString等),如果你想存储自定义对象,你需要使用技巧。 [引用我的帖子在这里存储自定义类对象](http://stackoverflow.com/questions/16519443/nsmutablearray-not-saved-nsuserdefault/16519672#16519672) –