0
回報
我已經寫方法- (空)的getStatus:(的NSString *)網址與返回類型,NSOperationQueue addOperationWithBlock與iOS的
-(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 @"";
}
但現在我接受空字符串@「」我不能接收響應,我從服務器得到。有什麼辦法可以做同樣的任務嗎?