plist を使用して Core Data ストアをプリロードする簡単な方法を次に示します。
辞書の配列を含むプロパティ リストを作成します。各ディクショナリのキーを管理対象オブジェクトのキーに対応させます。
次に、アプリの初回起動時にこのメソッドを呼び出します。
- (void)loadDataFromPropertyList {
NSString *path = [[NSBundle mainBundle] pathForResource:@"someFile" ofType:@"plist"];
NSArray *items = [NSArray arrayWithContentsOfFile:path];
NSManagedObjectContext *ctx = self.managedObjectContext;
for (NSDictionary *dict in items) {
NSManagedObject *m = [NSEntityDescription insertNewObjectForEntityForName:@"TheNameOfYourEntity" inManagedObjectContext:ctx];
[m setValuesForKeysWithDictionary:dict];
}
NSError *err = nil;
[ctx save:&err];
if (err != nil) {
NSLog(@"error saving managed object context: %@", err);
}
}
loadDataFromPropertyList
の実装に次のコードを含めることで、アプリの初回起動時に呼び出しますapplication:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (![defaults objectForKey:@"firstRun"])
{
[defaults setObject:[NSDate date] forKey:@"firstRun"];
[[NSUserDefaults standardUserDefaults] synchronize];
[self loadDataFromPropertyList];
}