2012-10-17 105 views
0

我想用數據填充gridView。我正在使用從Web服務返回的數據執行此操作。爲了填補我有一個屬性loopIndex計數陣列的哪個對象應該是下一個單元格。你可以在這裏看到CellForRowAtIndexPath的方法。GridView總是在向下滾動時向下滾動

- (NRGridViewCell*)gridView:(NRGridView *)gridView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *MyCellIdentifier = @"MyCellIdentifier"; 

    NRGridViewCell* cell = [gridView dequeueReusableCellWithIdentifier:MyCellIdentifier]; 

    if(cell == nil){ 
     cell = [[NRGridViewCell alloc] initWithReuseIdentifier:MyCellIdentifier]; 

     [[cell textLabel] setFont:[UIFont boldSystemFontOfSize:11.]]; 
     [[cell detailedTextLabel] setFont:[UIFont systemFontOfSize:11.]]; 

    } 
    NSLog(@"loopIndex: %d",_loopIndex); 
    _players = [self getTeam]; 

     NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:[[_players objectAtIndex:_loopIndex]valueForKey:@"image"]]]; 
     UIImage *image = [[UIImage alloc]initWithData:imgData]; 
     cell.imageView.image = image; 
     cell.textLabel.text = [[_players objectAtIndex:_loopIndex]valueForKey:@"name"]; 
     cell.detailedTextLabel.text = [[_players objectAtIndex:_loopIndex]valueForKey:@"position"]; 
    if(_loopIndex < [[self getTeam]count]){ 
    _loopIndex++; 
    }else { 
     _loopIndex = _loopIndex; 
    } 
    return cell; 
} 

這裏您會看到該錯誤。它總是在NSData線上崩潰。

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[_PFArray objectAtIndex:]: index (30) beyond bounds (30)' 

我認爲我的循環索引有問題。因爲當我只使用一個靜態值。假設說1O像這樣

cell.textLabel.text = [[_players objectAtIndex:_loopIndex]valueForKey:@"name"]; 

它不會崩潰。有誰知道我可以如何解決它?

親切的問候

+0

您是否嘗試在其上放置一箇中斷點並逐句通過代碼以查看錯誤的位置? – Dcritelli

回答

0

嘗試

_loopIndex++; 
    if(_loopIndex >= [[self getTeam]count]){ 
     _loopIndex = [[self getTeam]count]-1; 
    } 

不要做正確,你應該做如下:

cell = // new default cell; 

// calculate _loopindex for next attempt 
if (_loopindex < [[self getTeam]count]) 
{ 
    //do your job 
} 

return cell; 

如果設置正確行數在部分和表,你應該有方法gridView cellForItemAtIndexPath根據需要調用確切次數。不多也不少。這會阻止您返回零或計算錯誤_loopindex計數器。

+0

謝謝你的回答,但它仍然與相同的錯誤崩潰。 –

+0

正確計算循環索引檢查表格是否合適。檢查網格視圖是否被調用了所需的次數。 –

+0

這對我有用。謝謝! –

0

你錯誤計算_loopindex這就是爲什麼你會得到一個錯誤,但更重要的是你應該依靠indexPath變量而不是你計算的索引來顯示你的數據在這個協議方法。