2011-08-17 78 views
0

如果u有數組這樣的UITableView顯示

quizArrayAnswers=[[NSMutableArray alloc] initWithObjects: 
        [NSMutableArray arrayWithObjects: @"blue", @"Red", @"Green",@"Yellow", nil], 
        [NSMutableArray arrayWithObjects: @"fred", @"jim", @"spud",@"tom", nil], 
        [NSMutableArray arrayWithObjects: @"albert", @"jim", @"spud",@"tom", nil], 
        //[NSMutableArray arrayWithObjects: @"emergency btn", @"fire alarm", @"doorbell",@"danger", nil], 
        [NSMutableArray arrayWithObjects: @"dog", @"rabbit", @"bird",@"flea", nil],nil]; 

創建您是如何得到的UITableView文本標籤,以顯示我想這第一對象的第一行,但沒有良好的所有其它表的方法完成

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

感謝

回答

1

我不是100%您正試圖實現的目標。

您當前的邏輯將返回四個NSMutableArray對象之一。然後您需要確定您想要顯示的NSMutableArray中的哪個項目,並執行另一個objectAtIndex:呼叫。

因此,舉例來說,如果你是第2行當前的代碼將返回該對象

(
    albert, 
    jim, 
    spud, 
    tom 
) 

然後,您將需要抓住的一個字符串。它可能看起來像這樣

NSArray *questions = [quizArrayQuestions objectAtIndex:[indexPath row]]; 
cell.textLabel.text = [questions objectAtIndex:indexOfQuestionText]; 
0

你有一個陣列內的嵌套陣列。因此,您需要改爲撥打以下電話號碼:

cell.textLabel.text = [[quizArrayQuestions objectAtIndex:[indexPath row]] objectAtIndex: 0]; 
1

我不太清楚你的意思是「第一個對象的第一行」。這可能是Thor所建議的,在這種情況下,它會爲您的前四個表格單元抓取陣列中的第一個對象。

你也可以做

cell.textLabel.text = [[quizArrayQuestions objectAtIndex:0] objectAtIndex:[indexPath row]]; 

這將讓你的對象第一陣列中的一個人。

更廣泛地說,你可以使用,如果你要處理的部分,以及嵌套的數組:

cell.textLabel.text = [[quizArrayQuestions objectAtIndex:[indexPath section]] objectAtIndex:[indexPath row]]; 

無論如何,以嵌套的數組,你會打電話objectAtIndex:第一是指數在拿到陣列。然後調用objectAtIndex:再次獲取該數組中所需的元素。


有件事要提的是,你想避免使用可變數組,除非你實際上計劃修改數據。因爲你對這些值進行了硬編碼,並且這些值將被顯示在tableview中,所以我猜你並不打算讓它們改變。如果在可能的情況下使用非可變元素,對性能和「樣式點」更好。