다음은 plists를 사용하여 코어 데이터 저장소를 미리로드하는 간단한 방법입니다.
사전 배열이 포함 된 속성 목록을 만듭니다. 각 사전의 키를 관리 객체의 키와 일치 시키십시오.
alt text http://www.freeimagehosting.net/uploads/b0b1909e81.png
그런 다음,이 방법을 응용 프로그램이 실행 처음 전화 :
:
- (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];
}
가 나는 결함이 질문을 고려하지 않을 것입니다. CoreData는 SQLite를 기본 스토리지로 사용하지만 SQLite 자체에 대한 인터페이스는 없습니다. 대신 CoreData의 힘은 클래스와 메소드에서 파생됩니다. 예를 들어,'NSFetchedResultsController'를'UITableView'와 함께 사용하면 필요할 때 디스크에서 효율적으로 데이터를 읽고, 그에 따라 메모리를 관리하는 데 도움이됩니다. 스트레이트 SQLite를 사용한다면 본질적으로 스스로 할 수 있습니다. – jbrennan
코어 데이터를 사용할 때 SQLite API는 어디에 있습니까? 내가 말할 수있는 한, 아직 거기에있다. –
한 번에 두 가지 모두에 액세스 할 수 있는지 여부는 신경 쓰지 않습니다. 핵심 데이터로 개체를 관리 할 때 나쁜 생각 일 수 있습니다. 나는 하나를 사용하고 싶고 어떤 것이 가장 좋은지를 알아야합니다. – Christian