2010-12-07 4 views
0

Я пытаюсь повторно использовать код «lazyTableimages», но у меня возникла проблема с тем, что первые значки не загружены. Я отлаживаю и обнаружил, что соединение не получает ответа (только для этих значков).Проблема при повторном использовании кода «LazyTableImages»

обновление это часть кода, который я думаю, что это проблема:

- (void)startDownload 
{ 
    self.activeDownload = [NSMutableData data]; 

    NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest: 
         [NSURLRequest requestWithURL: 
          [NSURL URLWithString:appRecord.imageURLString]] delegate:self]; 
    self.imageConnection = conn; 
    [conn release]; 
} 

, и я думаю, что соединение не имеет достаточно времени, чтобы быть установлено.

N.B: Я использую пользовательский myUITableViewCell.

ответ

0

Проблема заключалась в том, что я вызываю метод «[tableview reloadData]» из потока (а не основного потока), который будет отменен после этого вызова, поэтому по этой причине соединение, установленное для загрузки значков, было прервано (когда оно вызван из метода «..cellForView ..»), поэтому я изменил поток на «NSOperation», и я вызываю на нем метод reloadData в основном потоке, который будет таким «[tableView performSelectorOnMainThread:@selector(reloadData) WaitUntilFinshied:YES]; (синтаксис должен быть проверен)

0

Я использовал тот же код в некоторых своих проектах. В этом коде я не обнаружил никаких проблем. Может быть, вы пропустили что-то еще. Вы выделили объект IconDownloader? и вызовите метод startDownload.

Приветствия, Raxit

+0

привет, (это я отправил;)) Я нахожу странный вопрос: вы видите метод «- (void) startIconDownload: (AppRecord *) appRecord forIndexPath: (NSIndexPath *) indexPath« он вызывает метод на IconDownloader class.When это calld («startIcon ..») в методе «ViewForCell ..», соединение, о котором я говорил ранее, не установлено. Эта проблема не произошло, когда известный метод вызывается в методе «- (void) loadImagesForOnscreenRows» !!! – 2010-12-07 13:30:03

0

Ok. Это означает, что у вас проблемы с нижеприведенным заявлением. Который находится в методе cellForRowAtIndexPath.

[self startIconDownload: appRecord forIndexPath: indexPath];

Am i right Dingua?

+0

Да, что вызывает nsurlconnection, у которого не было ответа. – 2010-12-08 08:53:09

0

Вы что-то упустили. вы вызываете [self startIconDownload: appRecord forIndexPath: indexPath]; из (void) loadImagesForOnscreenRows и метода cellForRowAtIndexPath. Вы печатаете параметр в NSLog? проверьте значение appRecord.imageURLString Когда вы вызываете его из cellForRowAtIndexPath.

+0

он работает (я проверил значение) до {NSURLConnection * conn = [[NSURLConnection alloc] initWithRequest: [Запрос NSURLRequestWithURL: [NSURL URLWithString: appRecord.imageURLString]] delegate: self]; } – 2010-12-08 12:56:37

Смежные вопросы