Zauważyłem, że odtwarzam wiele podmiotów w różnych Core Data
Aplikacje w kółko.
Czy istnieje sposób na ponowne wykorzystanie jednostek w różnych modelach danych? Coś w rodzaju biblioteki często używanych encji.
Odpowiedzi:
2 dla odpowiedzi № 1Tak, ponieważ twój NSManagedObjectModel
instancja może składać się z więcej niż jednego pliku modelu. Najłatwiejszym sposobem na to jest prawdopodobnie:
- Utwórz wiele plików modeli w projekcie aplikacji. Jednym z nich może być zbiór encji współdzielonych, który jest wykorzystywany w wielu projektach.
- W czasie wykonywania utwórz plik
NSManagedObjectModel
dla każdego z plików, używającinitWithContentsOfURL:
. - Połącz wszystkie wystąpienia z kroku 2 w jeden zunifikowany model, używając
modelByMergingModels:
To da ci noweNSManagedObjectModel
wystąpienie ze wszystkimi elementami z każdego pliku modelu.
Użyj modelu z kroku 3 na stosie danych podstawowych.
Możliwe jest również łączenie modeli za pomocą mergedModelFromBundles:
, który wyszuka wszystkie istniejące modele w określonych pakietach (pakiet aplikacji lub pakiety frameworka). Wolę wypowiadać się wyraźnie na temat ładowanych przeze mnie modeli, ale oba podejścia działają.