末尾の '/' (または欠落) が原因でパターン マッチングが失敗する、この性質の投稿をかなりの数見てきました。
ただし、私の問題は、一致するパターンがないことです。私のエラーは次のようになります。
「ロードされた応答と一致する応答記述子がありません。」UserInfo=0xcb8a660 {NSErrorFailingURLStringKey= http://domain.herokuapp.com/auth/identity/callback , NSLocalizedFailureReason=URL から 200 レスポンスがロードされました ' http://domain.herokuapp.com/auth/identity/callback ',すべて (3) の応答記述子と一致しませんでした: http://domain.herokuapp.com pathPattern=(null) statusCodes=200-299> 一致しませんでした: 応答パス '/auth/identity/callback' はパスと一致しませんでしたパターン '(null)'。
「パスパターン '(null)'と一致しませんでした」が問題だと思います。
objectmanager と HttpClient のセットアップ:
+ (void) fireUpRestkit
{
RKLogConfigureByName("RestKit/Network", RKLogLevelTrace);
//base URL @"http://domain.herokuapp.com"
NSURL *baseURL = [[SCURLManager sharedInstance] baseURL];
AFHTTPClient * client = [AFHTTPClient clientWithBaseURL:baseURL];
[client setDefaultHeader:@"Accept" value:RKMIMETypeJSON];
RKObjectManager *objectManager = [[RKObjectManager alloc] initWithHTTPClient:client];
NSAssert(objectManager, @"objectManager did not instantiate correctly");
}
私のリクエストは次のようになります。
[[RKObjectManager sharedManager] postObject:user
path:/auth/identity/callback"
parameters:nil
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
私の記述子は次のように設定されています:
RKObjectManager *objectManager = [RKObjectManager sharedManager];
RKObjectMapping *userMapping = [RKObjectMapping mappingForClass:[SCUserEntity class]];
[userMapping addAttributeMappingsFromDictionary:[SCUserEntity keyMapping]];
RKRequestDescriptor * requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:userMapping.inverseMapping
objectClass:[SCUserEntity class]
rootKeyPath:nil
method:RKRequestMethodPOST];
RKResponseDescriptor * responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:userMapping
method:RKRequestMethodGET
pathPattern:nil
keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[objectManager addResponseDescriptor:responseDescriptor];
[objectManager addRequestDescriptor:requestDescriptor];
リクエストが返されたときにpostRequestを実行しているように見えないときに私が与えるパターンの理由を見つけることができません。buildResponseMappingsDictionary
およびその後のmatch~ メソッドをステップ実行しました。リクエストが行われると、それらはすべて正しい記述子を返しますが、リクエストがマッピングを必要とする場合、それは機能しません。
サーバーから 200 OK を受け取りました。リクエストとレスポンスの両方の本文が表示され、正しいように見えます。
誰かがおそらく明らかな欠落部分を見つけるのを手伝ってくれることを願っています:)