我遇到RestKit有趣的問題。我希望能夠通過CoreData中的uniqueID映射我的對象。它看起來像RKConnectionDescription應該讓我做到這一點。我想在RegisteredUser和BasicModel對象之間建立連接。事情是,當我創建連接時,我收到NSInternalInconsistencyException
,因爲RestKit說,Cannot connect relationship: invalid attributes given for source entity 'RegisteredUser'
使用initWithRelationship創建RKConnectionDescription時出現異常:屬性:
下面是我必須爲用戶創建映射的代碼。
RKEntityMapping *userEntityMapping = [RKEntityMapping mappingForEntityForName:@"RegisteredUser" inManagedObjectStore:[RKManagedObjectStore defaultStore]];
[userEntityMapping addAttributeMappingsFromArray:@[@"uniqueID",
@"createdAt",
@"updatedAt",
@"firstName",
@"middleName",
@"lastName",
@"email",
@"gender",
@"dateOfBirth",
@"profileImageUpdatedAt"]];
NSEntityDescription *userEntity = [NSEntityDescription entityForName:@"RegisteredUser" inManagedObjectContext:[RKManagedObjectStore defaultStore].mainQueueManagedObjectContext];
NSRelationshipDescription *basicModelRelationship = [userEntity relationshipsByName][@"basicModel"];
RKConnectionDescription *connection = [[RKConnectionDescription alloc] initWithRelationship:basicModelRelationship attributes:@{@"basicModel": @"uniqueID"}];
[userEntityMapping addConnection:connection];
在覈心數據的RegisteredUser
具有稱爲basicModel
一個BasicModel
實體一對一的關係。另外,BasicModel
實體具有uniqueID屬性。
據我所知,我正在根據示例here正確創建RKConnectionDescription。問題是當我打電話給initWithRelationship:attributes:
時,它聲稱在RegisteredUser
實體上有一個basicModel
屬性,當然這不是。關係只有一個basicModel
,所以我得到了我上面描述的崩潰。
爲什麼RestKit甚至檢查RegisteredUser
是否有一個屬性basicModel
如果它期望我爲關係創建連接?我在這裏錯過了什麼嗎?
你的JSON是嵌套的嗎?或者是在兩個不同的響應(外鍵映射)之後進行連接? – Wain
試圖用外鍵映射。當請求用戶時,JSON將如下所示。 {results:{firstname:「Blah」,lastName:「Blahblah」,basicModel:3,etc ...},其中3是basicModel被管理對象的uniqueID。 –