2012-08-29 49 views
0

我需要存储表中的一些对象。 它不会超过100个对象。 是不是像NSUserDefaults中的数组一样存储它的好方法?或者有更好的办法吗?在UserDefaults中存储自定义数据是否好方法?

+1

什么样的对象?虽然NSUserDefaults可以处理它,但我认为如果您要存储多达100个对象,将信息存储在plist中会是一种更清晰的方法。 – Jeremy1026

+0

另外,这些对象又是如何相互关联的呢?如果您尝试保存对象图,则可以将其序列化,保存,然后在应用程序再次启动时将其解除封存。 – FluffulousChimp

+0

杰里米,你能告诉我更多关于plist存储的信息吗? –

回答

3

虽然你可以存储这是NSUserDefaults使用[[NSUserDefaults standardUserDefaults] arrayForKey:@"key"];你可能不应该。默认设计用来存储非常小的数据量,比如用户偏好(因此名称)。如果您希望存储比此更多的数据,那么您可能需要查看.plists,NSDocumentDirectory,Core-DataSQLite数据库。

2

更好的方法是使用NSArray的s writeToFile:atomically:writeToURL:atomically:将其作为磁盘上的二进制斑点序列化。 NSUserDefaults不作为二进制存储,因此在加载时需要额外的解析时间,并且需要额外的时间写入磁盘。 NSUserDefaults也不是用来保存大量数据,而是用于一小组设置数据。

+0

其intresting ..以及如何阅读它? –

+0

@EvgeniyS如果你想看一下'NSArray'文档,你会发现有两个init方法可以从文件'initWithContentsOfFile:','initWithContentsOfURL:'中读取以及两个方便的方法:'arrayWithContentsOfFile:','arrayWithContentsOfURL :' – JustSid

+0

呃..对不起,当然a应该在文档中查看.. Thx为您的答案。我会阅读更多关于和之后,我会接受你的或第一个答案.. :) –

-2

否在NSUserDefaults上存储数据并不好,因为它会导致严重的黑客行为。

代替它,您可以使用AppDelegate来全局存储数据。

+2

谁说数据是敏感的?我也没有看到'AppDelegate'如何帮助保存数据。 – JustSid

+0

您可以存储数据,直到旅游应用程序不被关闭。但如果你想按它,你可以使用plist。 – freelancer

+0

AppDelegate是全球“管理”数据的好地方,但它不会在启动之间存储数据。 – Jeremy1026

0

将所有自定义数据存储在NSDictionary或NSArray中。

现在保存字典或数组中的文档目录自定义数据遵循this链接

+0

它不是什么我问的问题..你说如何管理应用程序中的数据,但我问如何缓存数据更好的方式..对于你更好地定义自定义对象.. –

+0

检查编辑anser –

+0

Thx的链接,JustSid说一样。我想我会这样做.. –

相关问题