サーバーから取得したレスポンスボディをストーリーボードに表示したいのですが、このように接続しています。アプリを実行すると、次の応答が返されます。
response.body={"id":2,"token":"xyzzyzzyx"}
2013-11-05 11:36:52.405 networkTest3[1327:70b] It Worked: (
"<LoginResponse: 0x8b508a0>"
)
CoffeeShopの例に従って、マスタービューでLoginResponseからのデータを表示しようとしていますが、RestKitのバージョンが原因で多くのことが異なるようです(現在、最後のバージョン0.20を使用しています)。クラスからインターフェイスのアウトレットにデータを接続する方法は既に知っていますが、応答本文からデータを取得する方法がわかりません。
クラスLoginResponseのこのメソッドでそれをやろうとしています
- (void)loadToken{
RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[LoginResponse class]];
[mapping addAttributeMappingsFromDictionary:@{
@"id": @"status",
@"token": @"token",
}];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:mapping pathPattern:nil keyPath:@"" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
NSURL *URL = [NSURL URLWithString:@"http://myurl.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
RKObjectRequestOperation *objectRequestOperation = [[RKObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[ responseDescriptor ]];
[objectRequestOperation start];
}
そして、私はこれを得ました:
2013-11-05 12:09:56.867 networkTest3[1585:3307] E restkit.network:RKObjectRequestOperation.m:576 Object request failed: Underlying HTTP request operation failed with error: (null)
私の次のステップは何ですか?
編集:これを LoginManager.m に追加しようとしました
[responseMapping addAttributeMappingsFromDictionary:@{@"id" : @"id", @"token" : @"token"}];
しかし、私は得ました
libc++abi.dylib: terminating with uncaught exception of type NSException
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Unable to add mapping for keyPath token, one already exists...'