Piszę aplikację na iPhone'a 3.0, która używa danych podstawowych do utrwalenia modelu. Chciałbym, aby aplikacja była instalowana z domyślnym zestawem danych. Podczas tworzenia dla iPhone'a < 3.0 użyłem skryptu SQL do zainicjowania bazy danych przed uruchomieniem kompilacji, a następnie wdrożono przygotowany plik .sqlite jako zasób aplikacji. Jakie jest najlepsze podejście do Core Data.Domyślny zestaw danych dla aplikacji iPhone opartej na rdzeniach danych
Wniosek: W końcu napisałem ogólny program obsługi XML. Nazwy elementów są odwzorowywane na nazwy klas i nazwy właściwości klasy Objective-C. Wartości PCDATA w elementach zostały przekonwertowane na typ zadeklarowany we właściwości nazwanej przez element. Elementy potomne lub elementy właściwości zostały rozwiązane w celu zgłaszania instancji - a zatem podczas analizowania dokumentu XML został zbudowany wykres obiektowy. Musiałem uporać się z Objective-C pierwszym starcie chociaż :-)
Przykład klas docelowych:
@interface Widget : NSObject {
@private
NSString* name;
NSSet* sprockets;
}
@property (nonatomic, retain) NSString* name;
@property (nonatomic, retain) NSSet* sprockets;
- (void)addSprocketsObject:(Sprocket*)value;
@end
@interface Sprocket : NSObject {
@private
NSString* name;
NSNumber* canFly;
NSNumber* wheels;
}
@property (nonatomic, retain) NSString* name;
@property (nonatomic, retain) NSNumber* canFly;
@property (nonatomic, retain) NSNumber* wheels;
@end
Przykład domyślny danych:
<data>
<Sprocket id="sprocket-1">
<name>Sprocket1</name>
<wheels>4</wheels>
</Sprocket>
<Widget id="widget-1">
<name>MyWidget</name>
<sprockets>
<Sprocket ref-id="sprocket-1"/>
<Sprocket id="sprocket-2">
<name>Sprocket2</name>
<canFly/>
</Sprocket>
<Sprocket id="sprocket-3">
<name>Sprocket3</name>
</Sprocket>
</sprockets>
</Widget>
</data>
Byłem zapełnianie baz danych coredata w pierwszej aplikacji uruchamianej z plists, powodując bardzo długi czas ładowania pierwszego uruchomienia. Wciąż widzę, jak ludzie mówią "używaj wstępnie wypełnionych baz danych .sqlite, które generujesz w pakiecie aplikacji". Przykład książek CoreData pokazuje, jak użyć pliku .sqlite, gdy już go znajdziesz, ale gdzie jest on na pierwszym miejscu? Znalazłem odpowiedź tutaj: http://ablogontech.wordpress.com/2009/07/13/using-a-pre-populated-sqlite-database-with-core-data-on-iphone-os-3-0/ – Prairiedogg