0

ブロック付きのオブジェクトを投稿しようとしています。OnDidFailWithError決して呼ばれることはなく、それは爆発しました。

これは私が得たエラーです:

キャッチされなかった例外'NSInvalidArgumentException'が原因でアプリを終了しています、理由:' + [MyClass objectLoader:didFailWithError:]:認識されないセレクターがクラスに送信されました

そしてここに私のコードがあります:

[[RKObjectManager sharedManager] postObject: myObj usingBlock:^(RKObjectLoader *loader){
    loader.targetObject = nil;
    loader.delegate = (id)self;
    loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[MyClass class]];

    loader.onDidFailWithError = ^(NSError *error) {
        NSLog(@"Error %@", [error localizedDescription]);
    };

    loader.onDidLoadObject = ^(id obj) {
        NSLog(@"Comment");
        NSLog(@"%@",obj);
    };

    loader.onDidLoadResponse = ^(RKResponse *response) {
        NSLog(@"Response: %@", [response bodyAsString]);
    };

    loader.onDidLoadObjects=^(NSArray* objects){
        //post notification
        [[NSNotificationCenter defaultCenter] postNotificationName:@"finish" object:nil];
    };

    loader.serializationMIMEType = RKMIMETypeJSON; // We want to send this request as JSON
    loader.method = RKRequestMethodPOST;

    loader.serializationMapping = [RKObjectMapping serializationMappingUsingBlock:^(RKObjectMapping* mapping) {
        [mapping mapAttributes:@"field1", @"field2",nil];
    }];
}];
4

2 に答える 2

0

エラーを処理できない場合は、onDidLoadResponseでこれを試してください

    loader.onDidLoadResponse = ^(RKResponse *response) {

        NSLog(@"Response did arrive");
        if([response statusCode]>299){

            NSError *error = nil;
            id parsedResponse = [NSJSONSerialization JSONObjectWithData:[response body] options:NSJSONWritingPrettyPrinted error:&error];
            NSLog(@"%@",parsedResponse);

        }

    };
于 2012-09-25T19:15:06.337 に答える
0

作成したブロックを使用せずに、現在のコントローラーで RestKit デリゲート メソッドを呼び出す、デリゲートを self に設定しています。

于 2012-12-04T17:22:49.893 に答える