RestKitとCoreDataを連携させようとしています。私が近づいていますが、私は次のエラーを取得しています:エンティティ(null)がキー "title"のキーコードに準拠していません
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".'
成功した私のBookクラスを見つけることだし、それがタイトルのプロパティを持っているように私には思えます。私は間違って何をしていますか?
Books.xcdatamodel
Book
title: String
私は、次の(JSON)を返しlocalhost:3000/books/initial
のURLを持っている
[{title:"one"}, {title:"two"}]
私は私のクラスを作成するためにmogeneratorを使用しています。私はBook
には何も追加されていないが、_Book
は、明確に定義されたタイトルのプロパティがあります。
最後に、リクエストをロードするコードを示します。
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);
}];
EDIT:私は右RKTwitterCoreData
アプリで見つかった//Send Request
一部、前に次の行を追加しましたが、私はまだ私は見ていない
// Other Initialization (move this to app delegate)
[objectStore createPersistentStoreCoordinator];
[objectStore createManagedObjectContexts];
objectStore.managedObjectCache = [[RKInMemoryManagedObjectCache alloc] initWithManagedObjectContext:objectStore.persistentStoreManagedObjectContext];
これは私が逃しているものでなければなりません。私はそれをTwitterアプリで見つけようとしています。私が持っているのは、上記+デフォルトのコアデータテンプレートです。 –
私は 'createManagedObjectContexts'を追加しましたが、一例は、' addPersistentStore'を使用してどこ私は表示されません。それはまだ動作しません –