2012-11-15 17 views
18

Czy ktoś może podać opis każdej z 5 metod instalacji?Jaka jest różnica między 5 metodami konfiguracji Magical Record?

(void) setupCoreDataStack; 
(void) setupAutoMigratingDefaultCoreDataStack; 
(void) setupCoreDataStackWithInMemoryStore; 
(void) setupCoreDataStackWithStoreNamed:(NSString *)storeName; 
(void) setupCoreDataStackWithAutoMigratingSqliteStoreNamed:(NSString *)storeName; 

Co oni robią i jaki jest przypadek użycia dla każdego?

Odpowiedz

27
setupCoreDataStack 

Użyj tego, gdy dopiero zaczynasz pracę z MagicalRecord. Będzie to, zgodnie z metodą, ustawić domyślny stos danych rdzenia. Elementy stosu są dobrze znane i obejmują: NSPersistentStore, NSPersistentStoreCoordinate, NSManagedObjectModel i domyślny NSManagedObjectContext. Przynajmniej jeden z nich musi być odpowiednio utworzony i skonfigurowany, aby Core Data działała. MagicalRecord zapewnia tej samej metody, aby skonfigurować swój stack z SQLite trwałego magazynu znajduje się w support/Library/Application //. Sqlite

setupAutoMigratingDefaultCoreDataStack 

Kiedy wersję swojego modelu, trzeba będzie przenieść swoje dane. Ta metoda będzie działać tak samo jak poprzednia metoda (powyżej), ale umożliwi także automatyczne migracje.

setupCoreDataStackWithInMemoryStore; 

Czasami, na przykład podczas pisania testów jednostkowych, chcesz, aby dane zniknęły po zakończeniu aplikacji. Ta metoda utworzy również stos CoreData (jak wspomniano powyżej), ale zamiast magazynu SQLite tworzy stały magazyn w pamięci systemowej (RAM).

setupCoreDataStackWithStoreNamed:(NSString *)storeName 

Czasami chcesz dostosować nazwę pliku, w którym znajdują się Twoje dane. Ta metoda działa tak samo jak pierwszy, mianowicie ustanowienie danych stosu rdzenia i umieszczenie sklep SQLite w konkretnej lokalizacji, ale zamiast .sqlite, sklep nazywa storeName.sqlite

setupCoreDataStackWithAutoMigratingSqliteStoreNamed:(NSString *)storeName 

robi to, że taki sam jak powyższa metoda, ale także włączone automatyczne migracje. Będziesz musiał to zrobić, gdy zmienisz model i przeprowadzisz prostą migrację, którą po prostu trzeba włączyć.

można przeczytać więcej na temat migracji danych Core na Apple's Core Data Reference Documentation

+1

Jak skojarzyć plik xcdatamodeld do MagicalRecord? Czy MagicalRecord będzie respektować atrybuty xcdatamodeld, takie jak "Store in External Record File"? – zakdances

+1

Domyślnie MagicalRecord użyje metody mergedModelsFromBundle: z parametrem zero. Jest to również w (strasznym) kodzie standardowym dostarczonym przez Xcode. To automatycznie wyliczy to dla ciebie. Istnieją dodatkowe pomoce do określenia pliku modelu w razie potrzeby (testowanie jednostki jest innym popularnym miejscem, gdzie jest to konieczne) – casademora

+0

Nadal jestem nieco zdezorientowany ... mergedModelsFromBundle automatycznie skanuje strukturę projektu dla plików xcdatamodeld? Co się stanie, jeśli masz więcej niż jeden xcdatamodeld? Czy encje (i ich atrybuty) zadeklarowane w tych plikach xcdatamodeld muszą pasować do NSManagedObjects, które podklasuje dla MagicalRecord? – zakdances

Powiązane problemy