코어 데이터를 사용하여 영구 데이터 (NSManagedObjects)의 시리즈을 sqlite에 쓰고 해당 시리즈를 애플리케이션으로 읽으려고합니다. 나는 하나의 세션 동안 단일 레코드를 읽을 수 있었지만, 나는 이전의 데이터가로드되지 않고 (그리고 sqlite 관리자는 테이블을 인식하지만 테이블의 엔트리를 인식하지 못함) 앱을 다시로드 할 때마다 그 레코드를 읽었습니다.iPhone의 지속성 코어 데이터
아래 applicationDidFinishLaunching에서: 나는 그런
[event setDateCreated:[NSDate date]];
로, managedObjectContext를 설정 3 컨트롤러 inputControl에서 다음
inputControl.managedObjectContext = context;
reportControl.managedObjectContext = context;
logControl.managedObjectContext = context;
내가
이벤트 NSManagedObjects 추가의 자산 여기
는 핵심 데이터 로직의 일부이다
및 logControl에서 이벤트 로그를 읽습니다.
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"dateCreated" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[sortDescriptor release];
NSError *error;
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResults == nil) {
NSLog(@"Error fetching from DB");
}
int i;
NSLog(@"size of DB: %d",mutableFetchResults.count);
for (i=0; i<mutableFetchResults.count; i++)
NSLog(@"event %d: %@",i,[mutableFetchResults objectAtIndex:i]);
[mutableFetchResults release];
[request release];
이 코드를 실행할 때 "DB의 크기 :"가 항상 '1'로 설정되어 있습니다. managedObjectModel, managedObjectContext 및 persistentStoreCoordinator는 표준 방식으로 처리됩니다.
어떤 도움을 많이
당신에게Peyman
SQLite는 관리자가 전혀 도움이되지 않습니다 당신의 도움에 대해 감사합니다. 핵심 데이터 편집기 (http://christian-kienle.de/CoreDataEditor/) –