2012-11-22 47 views
0

我有一個NSMutableArray;從NSMutableArray測試值並顯示到Tableview

array=(
{ 
    names=a; 
    score=2; 
}, 
{ 
    names=b; 
    score=5; 
}, 
{ 
    names=c; 
    score=20; 
} 
) 

首先我想測試分數是否大於10,然後在tableview中顯示所有的值;

我有困難時期如何訪問數組,我從PHP的觀點來,所以我真的沒有任何線索

我得到一個SIGABRT與

cell.textLabel.text = [self.array objectAtIndex:indexPath.row]; 

我推測,因爲我沒有消化數組,或者我將整個數組內容傳入可能會窒息並吐出的單元格中。

有人請幫忙嗎?

回答

2

最好的辦法是將你的數組重新寫入新數組,以避免在每個單元格中執行它的開銷。

你可以做到這一點,例如在viewDidLoad這樣的:

- (void)viewDidLoad { 
    self.filteredArray = [[NSMutableArray alloc] init]; 
    for (ArrayElement *arrayObject in self.array) 
    { 
     if ([[arrayObject score] intValue] > 10) 
     { 
      [self.filteredArray addObject:arrayObject]; 
     } 
    } 
} 

然後使用您tableView代表self.filteredArray

+0

對於SIGABRT問題,它應該像'cell.textLabel.text = [[self.filteredArray objectAtIndex:indexPath.row] score];'因爲您當前正在將數組元素分配給字符串。 –

相關問題