【问题标题】:Prevent Realm from writing JSON twice防止 Realm 两次写入 JSON
【发布时间】:2015-12-30 16:02:56
【问题描述】:

我是 Realm 和 iOS 的新手。我正在开发一个应用程序(用 Swift 编写),该应用程序具有用户搜索高尔夫球场的功能。我有一个包含大约 18K 课程的 JSON 文件。所以我想使用 Realm,这样我就可以在我的应用程序中快速搜索这些课程,而不会降低用户体验。我能够将我的 JSON 文件写入 Realm 浏览器,并且可以检索和搜索项目,这使其速度快了很多。

我的问题是我的应用程序委托中有代码,因为我想在应用程序启动时将 JSON 项发送到我的领域浏览器。但如果应用程序再次启动,它会再次写入 JSON 文件,这会在我的 Realm 浏览器中创建重复的高尔夫球场。

关于我应该如何执行此操作的任何建议,以便我可以在每次启动应用程序时将 JSON 文件写入浏览器而不会重复?

谢谢!

我将 JSON 文件写入 Realm 浏览器的代码:

        let dataManager = DataManager.getGolfCoursesFromFileWithSuccess { (data) -> Void in
        let json = JSON(data: data)
        if let courseArray = json.array {
            for course in courseArray {

                let golfCourseName: String? = course["biz_name"].string
                let city: String? = course["e_city"].string
                let state: String? = course["e_state"].string

                if golfCourseName != nil {
                    let course = Course()
                    course.name = golfCourseName!
                    course.city = city!
                    course.state = state!

                    let realm = try! Realm()

                    try! realm.write {
                        realm.add(course)
                    }
                }
            }
        }
    }

【问题讨论】:

    标签: ios json swift realm


    【解决方案1】:

    只需检查数据是否已存储。 IE。

    if try! Realm().objects(GolfCourse).count == 0 {
        // your loading code here.
    }
    

    【讨论】:

      【解决方案2】:

      我想通了。因为这是我希望用户在最初开始使用应用程序时拥有的数据集,所以我学习了如何将 Realm 文件与这些数据捆绑在一起,并将文件直接放入我的 Xcode 项目中。然后我使用方法配置了这个文件:

       "NSBundle.mainBundle().pathForResource("MyBundledData", ofType:"realm")" 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多