1
我遇到的问题是我的应用程序有一个线程,需要定期在循环内部发出一系列网络请求。由于这是在一个单独的线程内,并且由于请求的性质(对本地网络上的设备并且响应很简单),我想同步执行此操作。网络通信是一个单独的networking
类比databaseController
类。ios同步网络请求处理程序返回结果
我不能得到networking
类中的方法从完成处理
+ (void)GetMessages
{
NSURLSession *session = [NSURLSession sharedSession];
NSURLRequest *request = [networking makeAuthenticatedRequest:@"subpath.html"];
//NSString* returnable;
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:
^(NSData *data, NSURLResponse *response, NSError *error) {
NSString* newStr = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
//returnable = newStr;
//return(newStr)
NSLog(newStr);
}];
[task resume];
}
上面的代码工作,但里面有返回值的功能只是打印请求的结果什么。当我尝试任何注释掉的附加内容和必要的更改时,什么都不起作用。我甚至试图传递一个对调用对象的引用,并在完成处理程序中更新一个用于存储newStr的属性,但即使这样也行不通。
是我想要的吗?如果是这样如何?
我应该补充说,代码需要与ios 7-9兼容。