Swift ne peut pas générer d'accesseurs d'exécution dynamiques en raison d'un système de type strict. Vous pouvez créer une extension de Disease
classe et ajouter des méthodes manquées manuellement, voici le code:
extension Disease {
func addDogBreedObject(value:DogBreed) {
var items = self.mutableSetValueForKey("dogBreed");
items.addObject(value)
}
func removeDogBreedObject(value:DogBreed) {
var items = self.mutableSetValueForKey("dogBreed");
items.removeObject(value)
}
}
Remarques:
Je vous suggère de créer un fichier séparé pour l'extension Disease+CoreData.swift
, Cela devrait aider à garder votre code de redéfinit lorsque vous générez à nouveau le modèle CoreData
.
Il suffit de créer une relation dans l'un des objets gérés, le second sera mis à jour avec la référence arrière. (Identique à Objective-C)
Important: Pour que tout fonctionne, vous devez vérifier que les noms de classe des entités de votre modèle CoreData incluent le nom de votre module. Par exemple. MyProjectName.Disease
Réponse inspirée: Setting an NSManagedObject relationship in Swift
plus d'info http://stackoverflow.com/questions/24146524/setting-an-nsmanagedobject-relationship-in-swift – DogCoffee
Pour d'autres qui trouvent cette question parce qu'ils veulent apprendre à utiliser les relations dans les données fondamentales , j'ai finalement trouvé ce tutoriel: [Core Data et Swift: Relations et plus de récupération] (http://code.tutsplus.com/tutorials/core-data-and-swift-relationships-and-more-fetching--cms- 25070) – Wraithbone