RestKit과 CoreData를 함께 사용하려고합니다. 나는 더 가까워지고 있어요,하지만 난 다음 오류 받고 있어요 :엔티티 (null)가 키 "제목"에 대해 키 값을 코딩하지 않습니다.
CoreData: error: Failed to call designated initializer on NSManagedObject class 'Book'
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason:
'[<Book 0x8454560> valueForUndefinedKey:]: the entity (null) is not key value coding-compliant for the key "title".'
성공적으로 내 예약 클래스를 찾는 것, 그것이 제목 속성을 가지고 나에게 보인다. 내가 도대체 뭘 잘못하고있는 겁니까?
Books.xcdatamodel
Book
title: String
나는 내 수업을 만들 수 mogenerator을 사용하고 다음 (JSON)을 반환 localhost:3000/books/initial
에서 URL을
[{title:"one"}, {title:"two"}]
있습니다. Book
에는 아무 것도 추가하지 않았지만 _Book
에는 title 속성이 명확하게 정의되어 있습니다.
마지막으로 요청을로드하는 데 사용하는 코드는 다음과 같습니다.
RKObjectManager* objectManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://localhost:3000/"]];
RKManagedObjectStore* objectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:self.model];
objectManager.managedObjectStore = objectStore;
// Mappings
RKEntityMapping *bookMapping = [RKEntityMapping mappingForEntityForName:@"Book" inManagedObjectStore:objectStore];
[bookMapping addAttributeMappingsFromArray:@[@"title"]];
RKResponseDescriptor * responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:bookMapping pathPattern:@"books/initial/" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[objectManager addResponseDescriptor:responseDescriptor];
// Send Request
[objectManager getObjectsAtPath:@"/books/initial/" parameters:nil success:^(RKObjectRequestOperation * operation, RKMappingResult *mappingResult) {
NSLog(@"SUCCESS");
} failure: ^(RKObjectRequestOperation * operation, NSError * error) {
NSLog(@"FAILURE %@", error);
}];
편집 : 내가 바로 RKTwitterCoreData
응용 프로그램에서 볼 수있는 //Send Request
부분, 전에 다음 줄을 추가했지만
// Other Initialization (move this to app delegate)
[objectStore createPersistentStoreCoordinator];
[objectStore createManagedObjectContexts];
objectStore.managedObjectCache = [[RKInMemoryManagedObjectCache alloc] initWithManagedObjectContext:objectStore.persistentStoreManagedObjectContext];
내가 빠진 것이 틀림 없습니다. 나는 지저귐 앱에서 그것을 찾으려고 노력하고있다. 내가 가진 것은 위의 + 기본 코어 데이터 템플릿입니다. –
'createManagedObjectContexts'를 추가했는데 예제가'addPersistentStore'를 사용하는 곳을 보지 못했습니다. 여전히 작동하지 않습니다. –