0

次のJSONがあります

{
   ...
   "users": [
            {
                "name": "Username 1"
                "id": "uid1",
            },
            {
                "name": "Username 2",
                "id": "uid2",                
                "userCreator": "uid1"
            },
            {
                "name": "Username 3",
                "id": "uid3",
                "userCreator": "uid1"
            }
        ]
}

CoreData では、User クラス (id、name という名前のプロパティ) で、クラス User と userCreator という名前の 1 対多の関係があります。

今、私はJSON関係をマップする必要があります、私は試しました

RKManagedObjectMapping * mapping = [RKManagedObjectMapping mappingForClass:[User class] inManagedObjectStore:[RKManagedObjectStore defaultObjectStore]];

mapping.primaryKeyAttribute = @"id";
[mapping mapAttributes:@"id", @"name", nil];

RKManagedObjectMapping * userCreatorMapping = [RKManagedObjectMapping mappingForClass:[User class] inManagedObjectStore:[RKManagedObjectStore defaultObjectStore]];
userCreatorMapping.primaryKeyAttribute = @"id";
[userCreatorMapping mapAttributes:@"id", nil];

//[mapping hasOne:@"userCreator" withMapping:userCreatorMapping];
[mapping mapRelationship:@"userCreator" withMapping:userCreatorMapping];
[mapping connectRelationship:@"userCreator" withObjectForPrimaryKeyAttribute:@"id"];

うまくいかない、生産する

...
"users":[{
             "id":"uid1",
             "name":"Username 1"
         },
         {
             "id":"uid2",
             "name":"Username 2",
             "userCreator":{"id":"uid1"} // wanted "userCreator":"uid1",
         }...
4

1 に答える 1

0

問題のある行は

userCreatorMapping.primaryKeyAttribute = @"id";
// ...
[mapping connectRelationship:@"userCreator" 
     withObjectForPrimaryKeyAttribute:@"id"];

私はRKを使用していませんが、userCreatorMappingに何を何にマップするかを指示していないことは明らかです。あなたはただそれ"id"を両側に与えているだけです。

于 2012-11-28T14:37:10.530 に答える