У меня есть объект-гость, а внутри гость - объект City. Я установил relashionship в CoreData и RestKit, используя RKRelationshipMapping.RestKit - Отображение привязки с CoreData - Ошибка ответа
Я сопоставляются единое целое правильно, но когда я использую RKRelationshipMapping добавить City Entity, кажется, генерировать эту ошибку при вызове следующего метода с @ «CityId» свойство:
-[RKPropertyInspector classForPropertyNamed:ofEntity:]: unrecognized selector sent to instance
Мой код отображения:
RKObjectManager *objectManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:self.serverBaseAddress]];
objectManager.managedObjectStore = [RKManagedObjectStore defaultStore];
[RKObjectManager setSharedManager:objectManager];
RKEntityMapping *cityEMapping = [RKEntityMapping mappingForEntityForName:self.cityEntityName inManagedObjectStore:[RKManagedObjectStore defaultStore]];
[cityEMapping addAttributeMappingsFromDictionary:@{
@"id" : @"cityId",
@"name" : @"name"
}];
RKEntityMapping *guestEMapping = [RKEntityMapping mappingForEntityForName:self.entityName inManagedObjectStore:[RKManagedObjectStore defaultStore]];
[guestEMapping addAttributeMappingsFromDictionary:@{
@"name" : @"name",
@"photo" : @"photo",
@"comment" : @"comment",
@"id" : @"guestId",
@"date" : @"date"
}];
[guestEMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"city"
toKeyPath:@"city"
withMapping:cityEMapping]];
guestEMapping.identificationAttributes = @[ @"guestId" ];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:guestEMapping method:RKRequestMethodAny pathPattern:self.postGetAddress keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[objectManager addResponseDescriptor:responseDescriptor];
А где приложение останавливается: (PropertyClass получение 0х00 в PropertyClass = [[RKPropertyInspector sharedInspector] ...)
- (Class)classForKeyPath:(NSString *)keyPath
{
NSArray *components = [keyPath componentsSeparatedByString:@"."];
Class propertyClass = self.objectClass;
for (NSString *property in components) {
propertyClass = [[RKPropertyInspector sharedInspector] classForPropertyNamed:property ofClass:propertyClass isPrimitive:nil];
if (! propertyClass) propertyClass = [[RKPropertyInspector sharedInspector] classForPropertyNamed:property ofEntity:self.entity];
if (! propertyClass) break;
}
return propertyClass;
}
А вот JSON:
[{"id":"3","name":"Convidado3","city":{"id":"2","name":"São Paulo"},"date":"Data2","comment":"comentario3","photo":":P"},
{"id":"2","name":"Convidado2","city":{"id":"1","name":"Rio de Janeiro"},"date":"Data2","comment":"comentario2","photo":":|"},
{"id":"1","name":"Convidado1","city":{"id":"1","name":"Rio de Janeiro"},"date":"Data1","comment":"comentario1","photo":":)"},
{"id":"5","name":"Convidado5","city":{"id":"4","name":"Vitória"},"date":"Data4","comment":"comentario5","photo":":K"},
{"id":"4","name":"Convidado4","city":{"id":"3","name":"Belo Horizonte"},"date":"Data3","comment":"comentario4","photo":";)"}]
Субъект Гость имеет отношение с именем города, который подключен к городской Сущности через отношения под названием гости в следующем порядке:
Гостя ..... город
город < --- >> гости
Если я просто удалить его связь работает нормально, без города к югу от объекта ... Любая помощь или предложения оценили ...
Вы не пропустите атрибут идентификации в своем городе? – Alexis
Правильно ли вы установили значения компоновщика? – Wain
Хорошо, я добавил атрибут идентификации в картографировании города (после 'RKEntityMapping * cityEMapping'),' cityEMapping.identificationAttributes = @ [@ "cityId"]; 'теперь ошибка находится в другом месте:' static NSArray * RKArrayOfAttributesForEntityFromAttributesOrNames (NSEntityDescription * entity, NSArray * attributesOrNames) '... Я вижу объект-гость, и у него есть свойство city с NSRelationshipDescription как значение. Но все же, когда код запускает атрибут NSAttributeDescription * = [[entity attributesByName] valueForKey: attributeOrName]; 'attribute получает nil ..., и это вызывает« NSException » – Gabriel