0

parentId属性を介して親エンティティにリンクされているオブジェクトOrganizationalUnitがあります。OrganizationalUnitには、主キー属性ouId(JSON "_id"フィールドからマッピング)もあります。

これは私のコードです:

RKManagedObjectMapping *ouMapping = [RKManagedObjectMapping mappingForClass:[OrganizationalUnit class] inManagedObjectStore:manager.objectStore];
[ouMapping mapAttributes:@"name",@"type", nil];
[ouMapping mapKeyPath:@"_id" toAttribute:@"ouId"];
[ouMapping setPrimaryKeyAttribute:@"ouId"];

[ouMapping mapKeyPath:@"parent" toAttribute:@"parentId"];

[ouMapping hasOne:@"parent" withMapping:ouMapping];
[ouMapping connectRelationship:@"parent" withObjectForPrimaryKeyAttribute:@"parentId"];

これは、RestKitにある例と同じように機能します。

RKManagedObjectMapping* taskMapping = [RKManagedObjectMapping mappingForClass:[Task class] inManagedObjectStore:objectStore];
taskMapping.primaryKeyAttribute = @"taskID";
[taskMapping mapKeyPath:@"id" toAttribute:@"taskID"];
[taskMapping mapKeyPath:@"name" toAttribute:@"name"];
[taskMapping mapKeyPath:@"assigned_user_id" toAttribute:@"assignedUserID"];
[objectManager.mappingProvider setMapping:taskMapping forKeyPath:@"task"];

// Hydrate the assignedUser association via primary key
[taskMapping hasOne:@"assignedUser" withMapping:userMapping];
[taskMapping connectRelationship:@"assignedUser" withObjectForPrimaryKeyAttribute:@"assignedUserID"];

IDに基づいてオブジェクト間の関係をローカルに作成する必要があります。

残念ながら、実行時に、受信したデータの実際のマッピングが行われているときに、次のエラーが発生します。

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<__NSCFString 0x6d9c6f0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key _id.'

何か案が?

4

1 に答える 1