是每个允许用户输入用核心数据生成的数据的应用程序??。
我已经构建了一个“杂货列表”类型的表视图应用程序,您可以在其中命名列表,然后在详细视图中向列表中添加项目。很简单。我不明白的是,基于一本iphone开发书籍,这个示例使用字典将数据保存到plist中。
我了解到它在模拟器上工作,而不是在设备上工作,因为数据保存到应用程序包中,而不是文档目录(这对我来说是新的!)
在这个设备上,这个应用程序工作得很好,只是它不能保存数据。核心数据或sqlite是唯一的解决方案吗?是否每一个允许用户输入核心数据的应用程序?
发布于 2010-11-02 18:25:10
请注意,您提出的问题是不正确的,因为它假定CoreData与SQLite相关联,是plist的另一种选择。
CoreData是一个用于对象生命周期和图形管理的框架。它提供了诸如更改跟踪和传播、一致性执行、数据验证等常见任务的实现。
CoreData框架是一个独立于对象持久层的框架,可以使用不同的序列化实现,包括SQLite和XML (Plist)。
有关更多细节,请阅读核心数据编程.持久存储特性。
您是否应该使用CoreData的决定应该基于您是否需要它提供的任何特性。如果您需要序列化简单的对象图,而不需要一致性,则可以使用标准NSDictionary在任何应用程序可写文件夹中的简单plist文件中序列化数据。否则,使用CoreData,并根据要存储的数据类型选择适当的持久存储。
发布于 2010-11-02 18:24:10
从我在互联网上看到的情况来看,您可以使用Core (它提供了SQLite、原子和XML的选项),也可以使用NSKeyedArchivers和NSKeyedUnarchivers (http://www.vimeo.com/1454094),或者可以将数据存储在本地应用程序文件夹中(可能使用序列化方法)。看起来核心数据是最好的解决方案,但实现起来更复杂。对于一个简单的应用程序,就像您的应用程序一样,我认为序列化数据并将其存储在本地app目录中是完美的。
发布于 2010-11-02 22:31:10
令我惊讶的是,您的书中显示了一个将用户数据写入应用程序包的示例。事实上,我有点惊讶,因为这是可能的。
您应该能够将数据写入NSDictionary (或NSMutableDictionary),然后使用-writeToFile:atomically将其写入应用程序的文档目录:
使用-initWithContentsOfFile:读取返回的数据也应该是简单的。
对于刚起步的人,我建议你保持简单。工作NSDictionary非常简单,尽管您必须管理诸如列表列表以及如何命名存储在文档目录中的列表等。
最终,使用核心数据可能是一种更好的方法。它提供了更大的灵活性和更大的力量--但与以往一样,这些优势是有代价的。
https://stackoverflow.com/questions/4080710
复制相似问题