Realm不会更新现有对象

时间:2015-11-16 20:54:46

标签: ios swift realm

我正在使用Realm保存一些对象,用户可以通过网络功能重新加载它们。

class Task: Object {

    dynamic var id: String = ""
    dynamic var price: Double = 0

    override class func primaryKey() -> String {
        return "id"
    }

    func fillNew(json: JSON) {
        self.id = json["id"].stringValue
        self.name = json["prive"].doubleValue
    }
}

网络函数获取一个json数组来构建这些对象。创建这些新对象后,我会通过添加或更新传递它们,但是当我再次获取它们时,字段没有更改。

func getPendingTasks(completion: (JSON?, NSError?) -> ()) {
    let urlString = ".."
    Alamofire.request(.GET, urlString).responseJSON { response in
      let json = response.result.value != nil ? JSON(response.result.value!) : nil
      dispatch_async(dispatch_get_main_queue()) {
        completion(json, response.result.error)
      }
    }
}

func getTasks() {
    self.getPendingTasks() { json, error in
      if let error = error {
        return
      }

      let jsonTasks = json!["tasks"].arrayValue
      for jsonTask in jsonTasks {
        let task = Task()
        task.fillNew(jsonTask)
        self.tasks.append(task);
      }

      self.tasks = Task.sortGenericTasks(self.tasks)

      dispatch_async(dispatch_get_main_queue()) {
        let realm = try! Realm()
        try! realm.write {
          realm.add(self.tasks, update: true)
        }
      }
    }
}

我目前正在使用最新版本的域名,但无法准确指出正在发生的事情或我是否做错了。

0 个答案:

没有答案