我得到以下错误,而试图返回responseString在NSURLSession错误返回值
不兼容的块指针类型发送 '的NSString *(^)(NSData的* __强,NSURLResponse * __强,NSError * __强)' 到的参数类型 '无效(^)(NSData的* __强,NSURLResponse * __强,NSError * __强)'
在那里我把它从假设AViewController类
NSString *responseString=[self callAPI];
而下面是我在BViewModel类代码:
-(NSString*)callAPI
{
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
NSURL *url = [NSURL URLWithString:@"http://appersgroup.com/talkawalk/[email protected]&password=123456&latitude=52.486245&longitude=13.327496&device_token=show"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request addValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setHTTPMethod:@"POST"];
/* NSDictionary *mapData = [[NSDictionary alloc] initWithObjectsAndKeys: @"TEST IOS", @"name",
@"IOS TYPE", @"typemap",
nil];
NSData *postData = [NSJSONSerialization dataWithJSONObject:mapData options:0 error:&error];
[request setHTTPBody:postData];
*/
NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString* responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
if([responseString rangeOfString:@"nil"].location != NSNotFound)
{
NSString * newResponse = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
responseString = newResponse;
}
NSLog(@"%@",responseString);
NSLog(@"response %@",response);
NSLog(@"error %@",error);
return responseString;//adding this line give me error ? how to return value
}];
[postDataTask resume];
}
请检查我的编辑问题,我需要从不同的类调用此API,然后我如何获得该类中的返回响应? – iphonemaclover
@iphonemaclover他已经给你看了。看看他答案中的最后一段代码。这是你如何做, –
thanx technerd,它的工作像一个魅力(y) – iphonemaclover