Contexte d'objet géré créé dans la plupart des cas dans le délégué d'application. Quels sont les moyens de le transmettre à la hiérarchie de vue/contrôleur, de sorte que tous les navigateurs/contrôleurs d'onglets de l'arborescence puissent y avoir accès. Le transmettre à chaque fois de parent à enfant peut ne pas être le meilleur puisque je dois porter cette information à chaque fois et parfois tous les contrôleurs à la manière d'un enfant particulier peuvent en avoir besoin.Passage de managedObjectContext à la vue/hiérarchie du contrôleur
Répondre
La conception recommandée consiste à effectuer une injection de dépendance. Cela signifie que lorsque vous créez un UIViewController
vous passez dans le NSManagedObjectContext
via une propriété. Si le UIViewController
n'a besoin que d'un seul ou d'un ensemble d'instances NSManagedObject
, vous devez simplement les entrer via les propriétés.
Cette conception est plus flexible et permet une meilleure réutilisation de votre code. Lier tout à un seul "codé en dur" NSManagedObjectContext
dans l'AppDelegate est fragile et réduit la flexibilité de votre code. J'en discute en détail sur The Mac Developer Network.
Vous pouvez également créer un objet de contexte principal dans votre plume principale. Et reliez les contrôleurs avec cet objet. Ou créez un singleton si vous n'utilisez qu'un seul GPM.
si les contrôleurs sont dans différentes nib plutôt que principal alors cela ne fonctionnera pas. Singleton est une option juste. – Pablo
Un singleton est une conception cassée et doit être évitée à tout prix. –
Le lien de l'article est cassé. –