我已经编写了带有返回类型的方法-(void) getStatus:(NSString*) url ,
-(NSString) getStatus:(NSString*) statusUrl
{
NSURL *urlObj = [NSURL URLWithString:[statusUrl
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSError *err;
NSString *response = [NSString stringWithContentsOfURL: urlObj encoding:
NSUTF8StringEncoding error:&err];
return response;
}
但是stringWithContentsOfURL正在主线程中执行操作,因此在调用此方法时应用程序敲了一下。
所以我需要在后台线程中执行stringWithContentsOfURL函数,在得到响应后我想返回响应。
我当前的代码:
-(NSString) getStatus:(NSString*) statusUrl
{
NSURL *urlObj = [NSURL URLWithString:[statusUrl
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSError *err;
NSOperationQueue *rbQueue = [[[NSOperationQueue alloc] init] autorelease];
[rbQueue addOperationWithBlock:^{
NSString *response = [NSString stringWithContentsOfURL: urlObj
encoding: NSUTF8StringEncoding error:&err];
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
return response;
}];
}];
return @"";
}
但是现在我收到一个空字符串@“”,我无法收到从服务器收到的响应。有没有办法做同样的任务..