【发布时间】:2013-07-31 09:06:58
【问题描述】:
我已经编写了返回类型的方法 -(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 @"";
}
但是现在我收到一个空字符串@"",我无法收到服务器的响应。有没有办法做同样的任务..
【问题讨论】:
标签: objective-c nsoperation nsoperationqueue