在应用程序中存储静态数据的最佳方式
Posted
技术标签:
【中文标题】在应用程序中存储静态数据的最佳方式【英文标题】:Best way to store static data in app 【发布时间】:2015-05-15 16:54:47 【问题描述】:我是应用程序开发的新手,正在学习如何为 ios 创建应用程序。我对一些应用程序有一些想法,所有这些应用程序都将是几乎没有动态内容的信息应用程序。
我坚持的是存储静态数据的最佳方法。我不想为每个页面创建单独的场景,因为这会弄乱我的故事板并且难以维护。
我已经研究过创建一个可以为我的内容提供服务的 API。但由于我的内容很少或永远不会更改,我不希望用户每次启动应用程序时都创建网络请求。 然后,我研究了使用核心数据或 Realm 数据库,但我发现很难找到任何关于用数据预先填充数据库以填充“as-we-go”的文档。 我也考虑过两者的结合,但我也希望我的应用可以 100% 离线使用。
我真的很难找到该怎么做。理想情况下,我想使用核心数据并使用预填充的数据库发布应用程序。
我还应该提到我正在使用 Swift。我希望你们能帮助我。
【问题讨论】:
您可以考虑使用数据库管理器应用程序输入数据,然后导出为已知格式并从那里开始 如果您使用故事板静态页面,您可以将其分解为多个故事板,以使您的动态内容更加独立且更易于维护。额外的好处是,如果您决定更改静态内容,那就更简单了。 【参考方案1】:在简单的情况下,CoreData 和 Realm 都可能有点矫枉过正。特别是如果您的数据是只读的并且可以毫无问题地放入内存中,我会考虑将它们存储为捆绑到您的应用程序中的 JSON 文件。
这可以分三步完成:
将data.json
添加到您的项目中:
[
"name": "John Doe", "age": 31,
"name": "Jane Doe", "age": 25
]
定义模型:
struct Person
var name: String
var age: Int
加载数据:
import SwiftyJSON
func loadInitialData() -> [Person]
let path = NSBundle.mainBundle().pathForResource("data", ofType: "json")!
let data = NSData(contentsOfFile: path)!
let json = JSON(data: data)
var persons = [Person]()
for (_, item) in json
let name = item["name"].string!
let age = item["age"].int!
persons.append(Person(name: name, age: age))
return persons
注意:SwiftyJSON 用于更好地处理 JSON。
【讨论】:
【参考方案2】:理想情况下,我想使用核心数据并在预填充数据库的情况下发布应用程序。
Prefilled version of Core Data?
Prefill information in Core Data at startup.
【讨论】:
以上是关于在应用程序中存储静态数据的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章