2011-08-26 53 views
2

NSUserDefaults是将数据保存在设备上的一种简单方便的方式,虽然它被鼓励用作基本设置,但我想知道,您应该使用它的实际限制是什么?在NSUserDefaults中存储多少?

假设您有一个包含很多对象的大型字典1000,并且每个对象本身都是一个简单文本字符串作为值的字典。总的来说,这个大字典可能不是太大,因为它只包含文本,即使它有相当数量。

是不是O.K.使用NSUserDefaults这样的东西,你的主要数据模型?

回答

2

为什么不把它作为一个NSDictionary存储在文件中?

看到这个职位的一个很好的方式,将文件保存为一个的plist: Save NSDictionary to plist

,并得到它回来是因为这很容易:

NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:fileName]; 
+0

我八九不离十简化我的问题,但实际上我主数据模型是一个自定义对象,包括一对字典,一些BOOL ivars等。它不是很大,但我想我可以很容易地将这个自定义对象本身放在NSUserDefaults中。更新:实际上,我刚刚读到NSUserDefaults只接受标准的plist对象。我想知道这是否延伸到plist对象内部的对象? – johnbakers

+0

@andrewx:“plist对象”是递归的 - 数据结构中的所有内容都必须是其中的一种。如果你足够努力,你*可以*编码其他对象到那里,但我不会把你的整个数据模型放在NSUserDefaults中。这不是它的目的,如果你的应用程序增长,你可能需要迁移它。 –

相关问题