Comment définir la clé primaire dans Swift pour le Domaine modèle
Je suis en utilisant le Royaume dans une nouvelle iOS Swift projet. Je suis en utilisant Xcode 6.0.1 avec le SDK iOS 8.0 et Royaume 0.85.0
Je suis en train d'utiliser le nouveau Royaume de la clé primaire de la fonctionnalité afin que je puisse faire un addOrUpdateObject
.
Voici un exemple de modèle:
import Foundation
import Realm
class Foo: RLMObject {
dynamic var id = 0
dynamic var title = ""
func primaryKey() -> Int {
return id
}
}
Et comment je suis en train d'ajouter/mettre à jour un nouvel objet:
let foo = Foo()
foo.title = titleField.text
foo.id = 1
//Get the default Realm
let realm = RLMRealm.defaultRealm()
//Add to the Realm inside a transaction
realm.beginWriteTransaction()
realm.addOrUpdateObject(foo)
realm.commitWriteTransaction()
J'obtiens cette erreur:
RLMExecption', la raison: "Toto" n'a pas de clé primaire et ne peut pas
être mis à jour
Voici les docs sur la clé primaire. Je ne suis probablement pas le définir correctement:
http://realm.io/docs/cocoa/0.85.0/api/Classes/RLMObject.html#//api/name/primaryKey
Dernière docs sont ici maintenant:
https://realm.io/docs/objc/latest/api/Classes/RLMObject.html#//api/name/primaryKey
- lien brisé dans le domaine.io doc
- Nous avons déménagé notre "cacao" docs "objc" lorsque nous avons lancé Royaume Swift, alors essayez ce lien à la place: royaume.io/docs/objc/latest/api/Classes/RLMObject.html#//api/nom de/... Nous partons en place de redirections à partir de vieux liens si cela ne cause pas autant de confusion dans l'avenir.
- La redirection de l'ancienne liens vers les nouveaux docs ne semble pas fonctionner donc j'ai mis à jour ma question avec le nouveau lien.
Vous devez vous connecter pour publier un commentaire.
primaryKey
doit être une fonction de classe qui retourne le nom de la propriété qui est la clé primaire, et non pas une méthode d'instance qui renvoie la valeur de la clé primaire.Le type de retour de
primaryKey()
est facultatif:Pour Swift 5:
À éviter: la fin de l'app en raison de uncaught exception 'RLMException', la raison: 'clé Primaire de la propriété" id " n'existe pas sur l'objet.