2013-07-31 6 views
7

RESTKitでPOSTリクエストを行う方法に関する具体的なチュートリアルがあるかどうかを知りたいと思います。私はいくつかのチュートリアルを見てきましたが、「これはRESTKitを使ってPOST要求を行う方法と全く同じです。ヘルプは非常に感謝しています。RESTKit POSTリクエストチュートリアル

答えて

11

すでにマッピングされたモデルを持っていると仮定すると、あなたは、単にこれを行うことができます。

は、まず、あなたがあなたのマッピングを持つものを持っていると仮定すると、あなたのresponseDescriptorのinverseMappingでrequestDescriptorを設定します。

//This is used for mapping responses, you already should have one of this. PS:[Data mapping] is a method that returns an RKObjectMapping for my model. You should create yours or use a previous created one 
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:[Data mapping] pathPattern:nil keyPath:@"data" statusCodes:statusCodeSet]; 
[[RKObjectManager sharedInstance] addResponseDescriptor:responseDescriptor]; 

//Inverse mapping, to perform a POST 
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:[[Data mapping] inverseMapping] objectClass:[Data class] rootKeyPath:nil]; 
[[RKObjectManager sharedInstance] addRequestDescriptor:requestDescriptor]; 

その後、POSTを実行するには、以下のメソッドを呼び出します。 Restkitはあなたが投稿しようとしているインスタンスを取得し、それをシリアル化し、選択したパスに送信します。

[[RKObjectManager sharedInstance] postObject:instanceOfYourModel path:yourPathHere parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { 
    NSLog(@"Success"); 

} failure:^(RKObjectRequestOperation *operation, NSError *error) { 
    NSLog(@"Error"); 
}]; 

あなたがマッピングされたモデルを持っていない場合、私は私たちが何かを試すことができます知っています。

+0

マップされたモデルが本当にわかりません。それはこれですか?RKObjectMapping * mapping = [RKObjectMapping mappingForClass:[ログインクラス]]; [マッピングaddAttributeMappingsFromArray:@ [@ "username"、@ "password"]]; リターンマッピング。 – comrod

+1

はい。オブジェクトマッピングには[mapping inverse mapping]というメソッドがあります。私が示したようにリクエスト記述子を作成してRKObject Managerに作成すれば、postObjectを実行することができます。疑問があれば、 –

+1

ルーカスにお尋ねください。私は答えを受け入れることができればと思います。それを+1してください。 – PJC