我正在构建一个iOS应用程序,并且我正在使用AFNetworking库将数据发送到服务器。
我创建了一个函数来发布数据并在我的应用程序中的不同类中调用此函数。
我在变量中得到了对请求的响应" responseObject" ,我想在return语句中返回这个我无法识别responseObject的返回类型,因此函数,我尝试使用NSDictionary但得到以下警告:
Conflicting return type in implementation of 'postData:parameters:': 'void' vs 'NSDictionary *'
这是我的代码:
-(void)postData:(NSString*)postUrl parameters:(NSDictionary *)params{
NSURL *baseURL = [NSURL URLWithString:@"http://xyz:2424/api/"];
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL];
manager.requestSerializer = [AFJSONRequestSerializer serializer]; manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager POST:postUrl parameters:params success:^(NSURLSessionDataTask *task, id responseObject)
{
NSLog(@"response %@",responseObject);
}
failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"\n============== ERROR ====\n%@",error);
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error adding book" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alertView show];
}];
}
答案 0 :(得分:0)
首先,您可以通过键入NSLog(@&#34; ClassType - %@&#34;,[responseObject class])来查看responseObject的类类型。然后通过自定义委托将responseObject传递给所需的类型。< / p>
答案 1 :(得分:0)
这意味着你的postData方法需要返回一个NSDictionary,但是你的方法说&#34; void&#34; - 看一下头文件中的方法定义,我希望它是:
-(NSDictionary*)postData:(NSString*)postUrl parameters:(NSDictionary *)params;