在应用

时间:2015-05-15 16:54:48

标签: ios swift core-data

我是应用程序开发的新手,正在学习如何为iOS创建应用程序。我对一些应用程序有一些想法,所有这些应用程序都是信息应用程序,几乎没有动态内容。

我坚持的是存储静态数据的最佳方法。我不想为每个页面创建单独的场景,因为这会弄乱我的故事板并且很难维护。

我已着手创建一个可以为我的内容提供服务的API。但由于我的内容很少或永远不会改变,因此我不希望每次应用启动时让用户创建网络请求。 然后,我研究了使用核心数据或Realm数据库,但我发现很难找到任何关于使用数据预填充数据库的文档,以便填充" as-we-go"。 我也考虑过两者兼而有之,但我也希望我的应用程序100%可脱机使用。

我真的很想找到该怎么做。理想情况下,我想使用核心数据并将应用程序与预填充的数据库一起发送。

我还应该提到我正在使用Swift。我希望你们能帮助我。

2 个答案:

答案 0 :(得分:3)

  

理想情况下,我希望使用核心数据,并在预填充数据库的情况下发布应用程序。

Prefilled version of Core Data?

Prefill information in Core Data at startup.

答案 1 :(得分:3)

在简单的情况下,CoreData和Realm都可能有点矫枉过正。特别是如果您的数据是只读的并且没有问题地放入内存中,我会考虑将它们存储为捆绑到您的应用程序中的JSON文件。

这可以分三步完成:

  1. data.json添加到您的项目中:

    [
      {"name": "John Doe", "age": 31},
      {"name": "Jane Doe", "age": 25}
    ]
    
  2. 定义模型:

    struct Person {
        var name: String
        var age: Int
    }
    
  3. 加载数据:

    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处理。