2

新しいものが展開されているので、古いものから始めるのを避けるために開発ブランチを使用しています。残念ながら、基本的な方法を理解できません (RestKit は初めてです)。

私が試みている基本的な手順は、2 つのパラメーターを指定して "/auth/login/" を呼び出すことから始め、json ドキュメントを取得することです。どんな助けでも大歓迎です!

更新 1: 間違った質問をしていますか? 私は何が欠けていますか?人々はプロジェクトにRestkitを使用しないのですか?

更新 2: このエラーが発生したときに何を探す必要がありますか? クラス マッピングとパス パターンがありますが、何をすべきかわかりません。

Code=1001 "Unable to find any mappings for the given content"

この更新された readme ファイルをhttps://github.com/RestKit/RestKit/blob/development/README.mdで見つけました

更新 3:単純な呼び出し/応答/成功の呼び出しを行うさまざまな方法を試しましたが、何もしませんでした。呼び出しが成功したことを出力で確認できますが、RestKit は常にコンテンツをマップできないと不平を言っています。私は本当にそれを取得しません。結果のjsonは、主に次のとおりです。

{
      "email" : "me@here.com",
      "fullname" : "Full Name"
}

何を試しても、RestKitにそれを理解させることはできません。ヘルプ?誰?

更新 4: ペイロードを次のように変更し、さらに記述子ステートメントを変更しましたが、結果に変化はありませんでした。呼び出しは成功し、RestKit はエラー 1001 で失敗します。それでも my keyPath=null と表示されます。私は何が欠けていますか?

{
    "whoami" : {
      "email" : "me@here.com",
      "fullname" : "Full Name"
    }
} 

[manager addResponseDescriptor:[RKResponseDescriptor responseDescriptorWithMapping:mymap
                                               pathPattern:@"/auth/login/"
                                                   keyPath:@"whoami"
                                               statusCodes:statusCodes]];
4

1 に答える 1

1

多分これが役立つかもしれません..リクエストは次のようになります:

NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setObject:email forKey:@"email"];
[params setObject:fullname forKey:@"fullname"];


NSMutableURLRequest *rq = [manager requestWithObject:[User new] method:RKRequestMethodPOST path:@"http://url" parameters:params];

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:[User mapping] pathPattern:nil keyPath:nil statusCodes:nil];

RKObjectRequestOperation *operation = [[RKObjectRequestOperation alloc] initWithRequest:rq responseDescriptors:@[responseDescriptor]];

[operation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *result) {

     //success

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

     //error

}];
[operation start];

およびマッピング:

+ (RKObjectMapping *)mapping
{
    RKObjectMapping *requestMapping = [RKObjectMapping mappingForClass:[self class]];
    [requestMapping addAttributeMappingsFromDictionary:@{
     @"ContactDetail":     @"contactDetail",
     @"IdUser":            @"idUser",
     @"Name":              @"name",
     @"Address":           @"address",
     @"UserSettings":      @"userSettings"
     }];

    // if the obj have relationship
    RKRelationshipMapping *rl = [RKRelationshipMapping relationshipMappingFromKeyPath:@"someKey" toKeyPath:@"toKey" withMapping:[Obj mapping]];
    [requestMapping addPropertyMappingsFromArray:@[rl]];

    return requestMapping;
}
于 2012-12-11T10:04:39.703 に答える