当数据不是静态的时,我应该如何保存大量数据。 iOS、可可触控、Obj-C
Posted
技术标签:
【中文标题】当数据不是静态的时,我应该如何保存大量数据。 iOS、可可触控、Obj-C【英文标题】:How should I go about saving lots of data when the data will not be static. iOS, Cocoa Touch, Obj-C 【发布时间】:2012-10-31 20:32:26 【问题描述】:好吧,我真的不知道如何在我的 ios 应用上保存大量数据。该应用程序将允许用户创建一个条目,该条目将具有其名称的时间戳。对于每个条目,我需要存储多种数据(NSString、Boolean、Double、Float)。
每个条目都必须保存如下信息:
/////////
浮动
浮动
浮动
浮动
浮动
NSString
NSString
NSString
NSString
NSString
布尔值
布尔值
布尔值
//////////
因此,每个条目总共有 13 个值。但是,条目的数量可以无限地创建,并且会不断变化。因此,我应该如何存储所有这些信息。我对此很陌生,到目前为止我使用的只是NSUserDefaults
。谢谢。
【问题讨论】:
【参考方案1】:有了很多入口对象,Core Data 看起来很适合这个。在处理数据密集型应用程序时,它也是您工具带中的一个很好的框架。您基本上绘制出数据模型,然后将模型导出到可以查询的自定义对象(很像数据库)。
Lynda.com 上有一个很棒的教学系列,但你可以在这里找到来自 Apple 的很好的参考:
https://developer.apple.com/library/ios/#documentation/DataManagement/Conceptual/iPhoneCoreData01/Introduction/Introduction.html
祝你好运!
【讨论】:
谢谢。我想我会试试看。【参考方案2】:由于它们的顺序或类型非常动态,您可以只使用一个集合类(例如NSDictionary
或NSArray
)来保存数据的 objc 对象表示。这些类型采用NSCoding
- 只要它们的元素/内容也与NSCoding
兼容(例如NSNumber
、NSString
、NSNumber
或CFBoolean
(用于布尔值)),就可以了.
NSKeyedArchiver
在您的字段/类型不变时是一个不错的选择。
【讨论】:
【参考方案3】:使用核心数据。它非常灵活,为将数据从一种模式迁移到另一种模式提供了出色的解决方案,并且与 iCloud 紧密集成。从这里开始:
CoreData Getting Started
【讨论】:
以上是关于当数据不是静态的时,我应该如何保存大量数据。 iOS、可可触控、Obj-C的主要内容,如果未能解决你的问题,请参考以下文章
当所有单元格都是静态的时将单元格添加到 UITableView(在情节提要中设计)
redux-thunk 是不是应该管理设备上的数据加载和保存?