2012-09-25 192 views
0

我想用塊發佈一個對象。 OnDidFailWithError永遠不會被調用,它會爆炸。Restkit onDidFailWithError永遠不會被調用

這是我得到的錯誤:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[MyClass objectLoader:didFailWithError:]: unrecognized selector sent to class

這裏是我的代碼:

[[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]; 
    }]; 
}]; 

回答

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); 

     } 

    }; 
+0

MYCLASS是我不希望在網上披露的類的名稱。我得到了對象加載成功,但只是不能處理錯誤。 – user1688346

+0

我剛剛編輯了答案,檢查是否可以幫助您調試問題。 – clopez

0

您正在將代理設置爲self,它將調用這些RestKit dele當前控制器上的門控方法,而不是使用您創建的模塊。

相關問題