Во-первых, я использую NSURLConnection для загрузки данных JSON из твиттера. Затем я использую второй NSURLConnection для загрузки соответствующих изображений аватара пользователя (URL-адреса изображений анализируются после первой загрузки данных).
Для первого подключения к данным мой TwitterViewController установлен как делегат NSURLConnection. Я создал отдельный класс (ImageDownloadDelegate) для функции в качестве делегата для второго NSURLConnection, который обрабатывает изображения. После завершения загрузки твитов я использую этот код для получения аватаров:
for(int j=0; j<[self.tweets count]; j++){
ImageDownloadDelegate *imgDelegate = [[ImageDownloadDelegate alloc] init];
Tweet *myTweet = [self.tweets objectAtIndex:j];
imgDelegate.tweet = myTweet;
imgDelegate.table = timeline; //to reload the data
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:myTweet.imageURL]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60];
imgConnection = [[NSURLConnection alloc] initWithRequest:request delegate:imgDelegate];
[imgDelegate release];
}
Таким образом, для каждого образа, который необходимо загрузить, создается новый экземпляр класса делегата. Это лучший способ сделать это? Если бы я создал только один экземпляр класса делегата, я бы не смог выяснить, какое изображение связано с каким твитом, правильно? Я также не смог бы определить точный порядок загрузки изображений.
Алгоритм работает отлично ... Мне просто интересно, пойду ли я по нему наиболее эффективным способом.