2013-02-21 2 views
0

Я пытаюсь получить контент из ресурса http json (список категорий) и подключить его с помощью restkit и coredata.Не удается сделать Restkit 0.20 + CoreData work

Мое отображение работало, когда я не использовал CoreData. Тогда я решил использовать следующий учебник:

http://www.alexedge.co.uk/portfolio/introduction-restkit-0-20/

Однако я получаю странные ошибки, и я просто не могу понять, почему:

the entity (null) is not key value coding-compliant for the key "remoteId" 

Моя категория модель/юридическое лицо имеет remoteId отображенный на id на моем сервере, так что это не проблема. Однако, из ошибок, кажется, что Restkit или CoreData не может понять, какой объект я говорю о (они говорят, что это пустой объект ??)

Это код запроса:

- (NSFetchedResultsController *)fetchedResultsController{ 
     if (!_fetchedResultsController) { 
      NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:NSStringFromClass([Category class])]; 
      fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]]; 
      self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:[RKManagedObjectStore defaultStore].mainQueueManagedObjectContext sectionNameKeyPath:nil cacheName:@"Category"]; 
      self.fetchedResultsController.delegate = self; 
      NSError *error; 
      [self.fetchedResultsController performFetch:&error]; 
      NSLog(@"%@",[self.fetchedResultsController fetchedObjects]); 
      NSAssert(!error, @"Error performing fetch request: %@", error); 
     } 

     return _fetchedResultsController; 
    } 

И отображение:

+(void) prepareMapping { 
     RKObjectManager *manager = [RKObjectManager sharedManager]; 

     NSDictionary *categoryAttributes = @{ 
               @"id" : @"remoteId", 
               @"created_at" : @"updatedAt", 
               @"created_at" : @"createdAt", 
               @"name" : @"name", 
               @"ads_count": @"adsCount", 
              }; 

     RKEntityMapping *categoryMapping = [RKEntityMapping mappingForEntityForName:@"Category" inManagedObjectStore:manager.managedObjectStore]; 

     [categoryMapping addAttributeMappingsFromDictionary:categoryAttributes]; 

     categoryMapping.identificationAttributes = @[@"remoteId"]; 

     [manager addResponseDescriptorsFromArray:@[ 
     [RKResponseDescriptor responseDescriptorWithMapping:categoryMapping 
               pathPattern:@"neighborhoods/:neighborhoodId/categories.json" 
                keyPath:@"index_categories.index_category" 
               statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)] 
     ]]; 
    } 

ответ

1

Я не знаю, если NSStringFromClass([Category class]) будет работать. Вы попробовали следующий код?

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Category"]; 

Кроме того, вы можете проверить проект данных пример ядра внутри RestKit v.020-rc1 почтовый файл, чтобы увидеть, как обстоят дела.

Смежные вопросы