Некоторые из моих объектов имеют поле «id», а RestKit не позволяет мне отображать их оба в одно и то же имя. Как я могу это исправить? Для этих двух объектов у меня есть соответствующий объект на стороне сервера с свойством MyId, которое нужно заполнить. Я не хочу переименовывать свойства в качестве решения.Restkit Невозможно добавить сопоставление для keyPath
Вот пример двух классов можно использовать:
@interface MyObject : NSObject
@property NSNumber *id;
@end
@interface AnotherObject : NSObject
@property NSNumber *id;
@end
Вот пример кода, который я бы работать на обоих этих объектов:
RKObjectManager* objectManager = [RKObjectManager managerWithBaseURL:url];
RKObjectMapping *userMapping = [RKObjectMapping requestMapping];
NSDictionary *objMapping = @{@"id": @"MyId"};
[userMapping addAttributeMappingsFromDictionary:objMapping];
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:userMapping objectClass:[MyObject class] rootKeyPath:nil method:RKRequestMethodPOST];
[objectManager addRequestDescriptor:requestDescriptor];
objMapping = @{@"id": @"MyId"};
[userMapping addAttributeMappingsFromDictionary:objMapping];
requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:userMapping objectClass:[AnotherObject class] rootKeyPath:nil method:RKRequestMethodPOST];
[objectManager addRequestDescriptor:requestDescriptor];
Здесь ошибка что я получил бы:
Завершение приложения из-за неперехваченного исключения «NSInternalInconsistencyException», причина: «Невозможно добавить сопоставление для keyPath MyId, один уже существует ...»
я думаю, что ваша оценка вопроса неточна - показать определение «MyObject» и точно объяснить, что вы делаете, когда получаете исключение (показать трассировку стека). – Wain
Обновлено сообщение, которое будет более конкретным. – HawkEye1194
Спасибо за помощь! Также вы случайно знаете какие-либо сайты для хороших учебников RestKit? Относительно новичок в этом. Уже знаете о обучающем курсе RestKit github, но было интересно, есть ли еще. – HawkEye1194