我使用Fetch查询sqlite数据库中的行,并将结果加载到NSMutableArray myDataArray中。我想要做的是将myDataArray中的值存储到我的应用程序的首选项plist文件中。但是,当我运行下面的代码,我得到以下错误:如何在应用程序的plist文件中存储提取结果?
[NSUserDefaults的方法setObject:forKey:]:尝试插入非财产价值“( ...(注:包含50个行值) )”类'__NSArrayM'。
我使用相同的方法在我的plist文件中存储其他NSMutableArrays,但无法找出存储查询的数据库结果的方法。
您可能会问:为什么要存储这些值,只是在需要再次查询数据库时重新查询数据库?原因是我从数据库中随机抽取了行,我需要回忆这些行与它们最初的随机数。
任何帮助表示赞赏, LQ
...
fetchResults = [managedObjectContext executeFetchRequest:request error:&error];
self.myDataArray = [NSMutableArray arrayWithArray:fetchResults];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:self.myDataArray forKey:kFetchResultsArray];
感谢您的快速响应。使用存档对我来说似乎不是一个好的解决方案,所以我正在考虑的是重新设计应用程序,以便将所有50行数据拖入myDataArray,而不是将PK_ID拉入数组,将它们存储在plist中,然后使用Predicate每次取一行来调用每个PK_ID。 – 2010-10-04 21:06:07