2017-03-18 3 views
1

J'ai créé un modèle de données dans Xcode, sélectionné toutes mes entités, cliqué dans Éditeur -> Créer une sous-classe NSManagedObject. Il a créé tous les + CoreDataProperties et + CoreDataClass dans la portée de mon espace de travail, pas mon projet.Impossible de créer de nouvelles propriétés dans la sous-classe CoreData? iOS8 Swift3

J'ai alors modifier les fichiers de classe comme suit:

public class Child: NSManagedObject { 
    enum Gender:Int{ 
     case male=0,female,unknown 
    } 

    var uuid:UUID = UUID() 
    var gender:Gender? 

    convenience init(name:String,birthday:String,gender:Int){ 
     self.init() 
     self.name = name 
     self.birthday = Conversor.convertDate(dateString: birthday) 
     if(gender >= 0 && gender <= 2){ 
      self.gender = Gender(rawValue: gender)! 
     } 
    } 

    func setGender(gender:Int){ 
     self.gender = Gender(rawValue: gender)! 
    } 
    func setBirthday(birthday:Date?){ 
     self.birthday = birthday 
    } 
} 

Je ne touchez pas les fichiers de propriétés. Partout où j'appris CoreData m'a dit que les fichiers de classe ne sont pas générés à nouveau par Xcode et qu'ils étaient sains et saufs à modifier, mais il y a un commentaire dans le fichier qui me dit que le

// This file was automatically generated and should not be edited. 

face Lorsque je tente d'utiliser la classe dans mon projet le autocomplete ne peut pas trouver le sexe et l'uUID et si je tente de l'utiliser, il dit:

'Gender is not a member type of 'Child' 

Parmi beaucoup d'autres erreurs de ce genre

il n'y a pas de référence de ces fichiers dans le projet Construire des phases

Quelle est la bonne façon de procéder? Comment puis-je modifier la classe CoreData afin que je puisse avoir d'autres propriétés et méthodes qui n'ont rien à voir avec CoreData?

Merci beaucoup à l'avance :)

Répondre

1

s'il vous plaît sélectionner la génération de code pour votre entité dans le panneau droit de Manuel/Aucune. puis cliquez sur Éditeur -> Créer une sous-classe NSManagedObject.

+0

Merci beaucoup pour la réponse. Je l'ai fait, il a encore créé dans la portée de l'espace de travail. Maintenant, il ne peut pas trouver l'enfant dans le projet. Il dit "Utilisation de type non déclaré 'Enfant' –

+1

Après avoir nettoyé et redémarré Xcode cela a fonctionné parfaitement Merci beaucoup –

+0

Heureux, ça fonctionne pour vous :) –