2014-02-14 136 views
0
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{ 
    [self.responseData setLength:0];(URL1) 
    self.jsonData = [[NSMutableData alloc]init];(URL2) 
    self.genderData = [[NSMutableData alloc]init];(URL3) 
} 

我想一次發送多個URL什麼過程來接收響應..?NSURLConnection的委託方法

- (void)connectionDidFinishLoading:(NSURLConnection *)connection { 

    NSLog(@"connectionDidFinishLoading"); 
    NSLog(@"Succeeded! Received %d bytes of data",[self.responseData length]); 
    NSError * error; 
    id result = (NSMutableArray *)[NSJSONSerialization JSONObjectWithData:self.jsonData options:kNilOptions error:&error]; 
    if (error) 
    { 
     NSLog(@"DATA LOAD ERROR"); 

    } 
    else 
    { 
     if([result isKindOfClass:[NSArray class]]) 
     { 

      titlesArray = result; 
     } 
     else 
     { 
      titlesDic = result; 
     } 

    } 

    [self genderURLMethod]; 


} 

這是另一個委託方法

+0

你可能想使用NSURLConnection的2個不同的實例和檢查哪一個是它在 'connectionDidFinishLoading:'。 –

+0

另一種方法是使用AFNetworking,它使用完成塊來處理響應。使用多個請求時可以更好。 – geminiCoder

回答

0

NSURLConnection工作,我傾向於去兩種方式之一。

  1. 對每個代表始終使用不同的類。這樣委託實例只需要擔心1個URL。使用[[connection originalRequest] URL]來區分不同的URL。

例子:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    NSString *URLString = [[[[connection originalRequest] URL] absoluteString]; 
    if ([URLString isEqualToString:MY_URL_1]) { 
     // Handle the response for the first URL. 
    } else if ([URLString isEqualToString:MY_URL_2]) { 
     // Handle the response for the second URL/ 
    } 
} 
相關問題