2013-05-06 21 views
5

Ardından birbiri ardına başlayan iki istek var. Başlangıç ​​buTemsilci'de NSURLConnection nesneleri arasındaki farkı ayırt edin

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.com"]]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60]; 
NSURLConnection * connection = [[NSURLConnection alloc] 
           initWithRequest:request 
           delegate:self startImmediately:NO]; 
[connection scheduleInRunLoop:[NSRunLoop mainRunLoop] 
         forMode:NSDefaultRunLoopMode]; 
[connection start]; 

gibi istek ve böyle başlayan başka bir istek.

NSURL *url1 = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.apple.com"]]; 
NSURLRequest *request1 = [NSURLRequest requestWithURL:url1 cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60]; 
NSURLConnection *connection1 = [[NSURLConnection alloc] initWithRequest:request1 delegate:self]; 
[connection1 release]; 

Bu iki temsilci yöntemini nasıl ayırt edebilirim?

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

Bu amaçla herhangi bir ekstra sınıf değişkeni bulundurmak istemez.

+0

Geri arama yöntemindeki 'connection'argument'in kodunuzdaki' connection' veya 'connection1' değişkenlerine eşit olup olmadığını kontrol edin. – Markus

cevap

4

Çok basit:

-(void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    if (connection == connection1) 
    { 
     //It's for connection1. 
    } 
    else if (connection == connection2) 
    { 
     //It's for connection2. 
    } 
} 

Bu Güzel SO Soru geçebilir: Managing multiple asynchronous NSURLConnection connections

+0

Bu durumda her iki bağlantı aynı anda çalışıyor olabileceğinden, iki sınıf değişkeni Connection1 ve Connection 2'yi tutmam gerekiyor. Ve bu ekstra değişkenlerden kaçınmaya çalışıyorum. – NaXir

+0

Bu durumda, bu eski yaklaşımı neden kullandığınızı sorabilir miyim? – Bhavin

+0

Yapmanın kolay olduğunu buldum. Yeni yaklaşımı paylaşır mısınız lütfen? – NaXir

2

.h dosyasında NSURLConnection nesneleri alıp Markus önerdi olarak temsilci yönteminde kontrol edin.

veya

Alt sınıf senin NSURLConnection ve oluştururken yöntemler, uygun etiketin olduğunu kontrol temsilci de o zaman, bağlantı sınıfına tag özelliğini ekleyebilir. working tutorial here bulabilirsiniz.

İlgili konular