次の JSON を提供する Ruby On Rails ローカル サーバーを実行しています。
[ { "content" : "Here is content",
"created_at" : "2012-10-07T01:06:51Z",
"id" : 4,
"name" : "Joe",
"title" : "Title 1",
"updated_at" : "2012-10-07T01:06:51Z"
},
{ "content" : "Here is content",
"created_at" : "2012-10-07T01:07:09Z",
"id" : 5,
"name" : "John",
"title" : "Title2",
"updated_at" : "2012-10-07T01:07:09Z"
}
]
私は RestKit を使用して、これを次Post
のようにモデル オブジェクトに解析しています。
- (void)loadObjects
{
RKObjectMapping *objectMapping = [RKObjectMapping mappingForClass:[Post class]];
[objectMapping mapKeyPath:@"id" toAttribute:@"postId"];
[objectMapping mapKeyPath:@"created_at" toAttribute:@"createdAt"];
[objectMapping mapKeyPath:@"content" toAttribute:@"content"];
[objectMapping mapKeyPath:@"title" toAttribute:@"title"];
[objectMapping mapKeyPath:@"name" toAttribute:@"name"];
[objectMapping mapKeyPath:@"updated_at" toAttribute:@"updatedAt"];
RKObjectManager* manager = [RKObjectManager objectManagerWithBaseURLString:@"http://localhost:3000/"];
[manager loadObjectsAtResourcePath:@"/posts" objectMapping:objectMapping delegate:self];
}
- (void)objectLoader:(RKObjectLoader *)objectLoader didLoadObjects:(NSArray *)objects {
NSLog(@"%@", objects);
}
これは問題なく動作しますが、loadObjectsAtResourcePath:objectMapping:delegate:
非推奨です。したがって、を使用する必要があると思いますがloadObjectsAtResourcePath:delegate:
、を設定する方法がわかりませんobjectMapping
。何かご意見は?
アップデート
私は今デリゲートを次のように設定しています:
[manager loadObjectsAtResourcePath:@"/posts" usingBlock:^(RKObjectLoader *loader) {
loader.objectMapping = objectMapping;
loader.delegate = self;
}];