我得到以下錯誤,而試圖返回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