3
我正在開發一個應用程序,它會向Facebook服務器請求某些用戶的個人資料圖片URL,但我不知道我將擁有多少用戶(可能是2或可能是20)。我是否應該使用帶有循環和同步請求的ASIHTTPRequest
,或帶有循環的API圖(帶iOS的Facebook SDK)?ASIHTTPRequest-multiple request
我正在開發一個應用程序,它會向Facebook服務器請求某些用戶的個人資料圖片URL,但我不知道我將擁有多少用戶(可能是2或可能是20)。我是否應該使用帶有循環和同步請求的ASIHTTPRequest
,或帶有循環的API圖(帶iOS的Facebook SDK)?ASIHTTPRequest-multiple request
嘗試使用ASINetworkQueue。它將允許您創建一個仍然可以異步啓動的ASIHTTPRequests隊列。例如
- (void)getImages
{
if(!self.queue)
self.queue = [[[ASINetworkQueue alloc] init] autorelease];
NSArray* urlStringsToRequest = [NSArray arrayWithObjects:@"http://www.example.com/image1.png",@"http://www.example.com/image2.png",nil];
for(NSString* urlString in urlStringsToRequest)
{
NSURL *url = [NSURL URLWithString:urlString];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];
[self.queue addOperation:request];
}
[self.queue go];
}
- (void)requestDone:(ASIHTTPRequest*)req
{
UIImage* image = [UIImage imageWithData:[req responseData]];
[imageArray addObject:image];
}
- (void)requestWentWrong:(ASIHTTPRequest*)req
{
NSLog(@"Request returned an error %@",[req error]);
}
是的但我想要結果呈現它們。我可以用asfintwork隊列使用didfinish嗎? – BlackM 2011-05-31 21:34:09
事實上,請參閱https://gist.github.com/150447瞭解簡單(但完整)的示例。 – bensnider 2011-05-31 21:34:45
您可以將didFinishSelector放入隊列或每個單獨的請求。要麼工作。我更新了答案,說明如何從請求中獲取圖片。 – DHamrick 2011-05-31 21:39:18