2016-09-14 118 views
6

我是Realm的新成員,請求你幫助我。 我創建的模型:更新模型Realm Swift

class UserModel: Object { 

    dynamic var email = "" 
    dynamic var facebook_id = "" 
    dynamic var google_id = "" 
    dynamic var id = 0 
    dynamic var name = "" 
    dynamic var photo = "" 
    dynamic var someinfo = "" 
    dynamic var twitter_id = "" 

} 

當我登錄到應用程序,我可以看到我在UserProfileController信息。另外我有一個EditProfileController,可以在其中更改一些關於我自己的信息。所以,當我成功地改變它,我想更新我的領域模型,並嘗試做到這一點:

let realm = try! Realm() 

    try! realm.write { 
     realm.create(UserModel.self, value: ["name": self.editEmail.text!, "email": self.editEmail.text!], update: true) 
    } 

但不幸的是我看到這條消息:

''UserModel' does not have a primary key and can not be updated' 

,如果我想更新一些什麼財產在同一時間? 我可以用primaryKey做這個嗎?或... 如何在不使用primaryKey的情況下更新Realm模型?

回答

6

的問題在於這個update: true,它是用來自動替換那些在你的領域相同的主鍵,如果你的對象不具有主鍵對象,設置updatefalse那麼它會工作,始終創建新的對象

+0

謝謝你的回覆!我將'true'替換爲'false'。那個錯誤不再出現。但是我的模型不更新... – Roman

+0

如果你想更新而不是創建新的,你必須給它的主鍵並將更新設置爲true,或者先獲取對象並將其移除,然後創建新對象,有點很多工作,但它是如何工作的 – Tj3n

+0

我明白,你。請提示我!如何在一個模型中使用primeryKey同時更新多個屬性? – Roman