Selon Apple, la vidéo concernant Ce qui est nouveau Dans CoreData cadre: 38mins (WWDC2014 Session 225), dans l'inspecteur du Modèle de Données, préfixe le nom de la classe avec le nom de projet. Comme projectName.Médecin
J'ai essayé cela, mais ce qui va se passer c'est que le géré la classe d'objet devient: projectName.swift à la place de Médecin.swift. Même la déclaration de la classe devient la classe nom_du_projet: ManagedObject
Solution:
Dans le modèle de Données de l'inspecteur, il suffit de spécifier le Nom et la Classe de votre objet à quel nom que vous voulez, exemple: Médecin
Après avoir généré un modèle d'objet et en sélectionnant Swift, ce qui va créer un fichier (un Médecin.swift).
Maintenant, lors de l'insertion de nouveaux enregistrements dans la Base de Données, vous risquez une expérience d'erreur "Classe pas trouvé, en utilisant par défaut NSManagedObject au lieu de" même si vous lancez la nouvellement inséré un objet à un nom d'objet approprié.
Pour résoudre ce problème, vous avez juste besoin d'ajouter @objc(nom de la classe) au-dessus de la déclaration de classe. Voir exemple ci-dessous.
import Foundation
import CoreData
@objc(Doctor)
class Doctor: NSManagedObject {
@NSManaged var name: String
}
Alors:
let doctorManagedObject = NSEntityDescription.insertNewObjectForEntityForName("Doctor", inManagedObjectContext: context) as Doctor
doctorManagedObject.name = "John" // you can now use dot syntax instead of setValue
Enregistrer pour valider insérer.