2016-09-14 28 views
6

Realm'de yeni biriyim ve bana yardım etmenizi rica ediyorum. Ben app giriş yaptığınızdaGüncelleme modeli 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 = "" 

} 

, ben UserProfileController benim bilgileri görebilirsiniz: Ben modelini yarattı. Ayrıca kendim hakkında bazı bilgileri değiştirebileceğim bir EditProfileController var. Ben başarıyla değiştirdiğinizde Yani, benim Diyar modelini güncellemek ve bunu yapmak denemek istiyorum:

let realm = try! Realm() 

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

Ama ne yazık ki bu mesajı görebilirsiniz:

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

Birkaç güncellemek istiyorsanız ne mülk aynı zamanda mı? Bunu birincilAnahtar ile yapabilir miyim? Veya ... Realm modelini primaryKey olmadan nasıl güncelleyebilirsiniz?

cevap

6

bu update: true problem yalan, o zaman o iş ve her zaman yeni bir nesne oluşturur, otomatik nesne birincil anahtar yoksa, sizin aleminde aynı birincil anahtara sahip nesneyi değiştirmek için kullanılır false için update ayarlanmıştır

+0

Cevabınız için teşekkür ederiz! 'Doğru' yerine 'yanlış' yazarım. Ve bu hata artık görünmez. Ama benim modelim güncellenmiyor ... – Roman

+0

Yeni oluşturmak yerine güncellemesini istiyorsanız, birincil anahtarı vermeli ve güncellemeyi true olarak ayarlamalı ya da nesneyi almalı ve önce çıkarmalı, sonra yeni bir nesne oluşturmalısınız. Bir sürü iş var ama nasıl çalışıyor – Tj3n

+0

Anladım, sen. Bana bahşiş ver! Tek bir modelde primeryKey ile aynı anda birden fazla mülkü nasıl güncelleyebilirim? – Roman