1

こんにちは、restkit を使用するのは初めてで、ネストされたオブジェクトを投稿する方法について混乱しています。次のjsonを投稿しようとしています:

{
    "user": {
        "id": "77777-795C-4374-9A29-5C12FF8031F7",
        "firstname:": "joe",
        "lastname": "bob"
    },
    "device": {
        "token": "phPS2sxbRRvoBbdE8e1VT8nFIJ4R8aJ6rdoCJ8iP1luWm3gUJDMnRHBs1SarfosTsIeYMMxwraLCY35B4whaFIISdosHzqa96vkZANHFy5rusHcrnUQuFgJHnsnqOsgxgOPd8QbrZAAxIlmqCt0an5pH69PWZAXcOVuzFilo310oeNW04qWZCWb8GWYMkODcMuUZANCAAFfvZB4ZAyokBADz"
    }
}

Restkit バージョン 0.20.3 を使用しています

これは私のマッピングがどのように見えるかです:

RKObjectMapping *userMapping = [RKObjectMapping requestMapping];

[userMapping addAttributeMappingsFromDictionary:@{
                                                      @"id": @"id",
                                                      @"firstname": @"firstname",
                                                      @"lastname": @"lastname"
                                                      }];

RKObjectMapping *deviceMapping = [RKObjectMapping requestMapping];
[facebookMapping addAttributeMappingsFromDictionary:@{
                                                     @"token": @"token"
                                                     }];

RKObjectMapping *authMapping = [RKObjectMapping requestMapping];

[authMapping addPropertyMapping:[RKRelationshipMapping
 relationshipMappingFromKeyPath:@"user"
                      toKeyPath:@"user"
                    withMapping:userMapping]];

[authMapping addPropertyMapping:[RKRelationshipMapping
 relationshipMappingFromKeyPath:@"device"
                      toKeyPath:@"device"
                    withMapping:deviceMapping]];

RKRequestDescriptor *authDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:authMapping objectClass:[AuthCredentials class] rootKeyPath:nil method:RKRequestMethodPOST];
[manager addRequestDescriptor:authDescriptor];

User *user = [[User alloc] init];
user.id = @"77777-795C-4374-9A29-5C12FF8031F7";
user.firstname = @"joe";
user.lastname = @"bob";

Device *device = [[Device alloc] init];
device.token = @"phPS2sxbRRvoBbdE8e1VT8nFIJ4R8aJ6rdoCJ8iP1luWm3gUJDMnRHBs1SarfosTsIeYMMxwraLCY35B4whaFIISdosHzqa96vkZANHFy5rusHcrnUQuFgJHnsnqOsgxgOPd8QbrZAAxIlmqCt0an5pH69PWZAXcOVuzFilo310oeNW04qWZCWb8GWYMkODcMuUZANCAAFfvZB4ZAyokBADz";

AuthCredentials *cred = [[AuthCredentials alloc] init];
cred.user = user;
cred.device = device;

[manager postObject:cred path:@"/testpost" parameters:nil
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult)
 {

 }
failure:^(RKObjectRequestOperation *operation, NSError *error)
 {

}];

私のエラー メッセージは次のとおりです。UserInfo=0x9427070 {DetailedErrors=( ), NSLocalizedFailureReason=マッピング操作は、検索されたキー パスでネストされたオブジェクト表現を見つけることができませんでした: マッパーに入力された表現には、次のキー パスでネストされたオブジェクト表現が含まれていることがわかりました: エラーマッピングのキー パスを誤って構成したことを示します。, NSLocalizedDescription=検索されたキー パスでマッピング可能なオブジェクト表現が見つかりませんでした., keyPath=null}

4

0 に答える 0