在应用程序中存储静态数据的最佳方式

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.

【讨论】:

以上是关于在应用程序中存储静态数据的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章

从应用程序中存储的文本文件中读取数据的最佳方式

在 iPhone 应用程序中处理离线存储的最佳方式?

OS X 应用程序。存储数据的最佳方式是啥?

在设备上存储和更新数据的最佳方式

在 Swift 中动态存储和访问数据的最佳方式

在数据库中存储货币价值的最佳方式是啥?