この質問には 2 つの部分があり、どちらも RestKit に関するものです。
- どうすれば2つの値の電子メールとパスワードを投稿し、オブジェクトマッパーを使用して応答を処理できますか.
- 応答で 2 つのオブジェクトをマッピングするにはどうすればよいですか
次の JSON 応答が期待されます。
{
"code" : 0,
"error_string" : "OK.",
"message" : "OK.",
"token" : {
"app_id" : "1",
"created" : "2011-08-19 11:30:31",
"token" : "ecb8862189974248233dfcc7e8fc1e4514e16972",
"user_id" : "1"
},
"user" : {
"avatar_url" : "",
"created" : "2011-08-19 11:29:21",
"email" : "x@x.com",
"forename" : "Matthew",
"gender" : "M",
}
}
これをマッピングする正しい方法は何ですか。ユーザーとトークンのクラス設定がありますが、私が見たすべての例は、応答に 2 つのセグメントがあるこのようなものを示していないようです。これが私たちが持っているコードですこの時点で:
// Mapping for User
RKObjectMapping* userMapping = [RKObjectMapping mappingForClass:[User class]];
[userMapping mapKeyPath:@"created" toAttribute:@"created"];
[userMapping mapKeyPath:@"avatar_url" toAttribute:@"avatarURL"];
[userMapping mapKeyPath:@"gender" toAttribute:@"gender"];
[userMapping mapKeyPath:@"email" toAttribute:@"email"];
[[RKObjectManager sharedManager].mappingProvider setMapping:userMapping forKeyPath:@"user"];
// Mapping for Token
RKObjectMapping* tokenMapping = [RKObjectMapping mappingForClass:[Token class]];
[tokenMapping mapAttributes:@"user_id", @"app_id", @"token", @"created", nil];
[[RKObjectManager sharedManager].mappingProvider setMapping:tokenMapping forKeyPath:@"token"];
// Load the object model via RestKit
[[[RKObjectManager sharedManager] client] setValue:@"xxxxxxxxxxxxxxxxxxx" forHTTPHeaderField:@"X-API-KEY"];
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/users/authenticate/" delegate:self];
これまでのところ、RestKit を愛しているあなたがこれに与えることができる助けに感謝します!