2012-07-25 20 views
0

我想顯示不同的字符串集合,其中不同的字符串計算取決於發件人的回覆。兩組字符串是並行的,這意味着命名就像.. user1,user2,object1,object2,name1,name2,age1,age2 ,etc..what我知道到目前爲止是使用...如何通過[發件人標籤]引用不同的對象?

-(IBAction)showLotOfStuff:(id)sender{ 
switch ([sender tag]) { 
case 1: //show user1, object1, name1, age1... 
case 2: //show user2, object2, name2 age2...} 

然而,到那時我將有兩倍大小和重複的代碼,因爲我有很多事情要做,並show..it是非常愚蠢的,它涉及陣列,計算和我真的想要看到它兩次,但我可以通過簡單的複製和粘貼..

我不知道是否有任何方法可以削減他們的一半..

-(IBAction)showLotOfStuff:(id)sender{ 
show user[sender tag], object[sender tag], 
name[sender tag], age[sender tag]...} 

這個問題是相當基本的我想,但我只是不知道該怎麼做。 Thx爲您的幫助!

回答

1

您是否有用戶數組?你的數據是什麼樣的?你可以重構這個,而不是重複代碼。

比方說,你有一個NSArrayusers

不知道你使用的是什麼樣的控件,但爲了簡單起見,我們可以假設你有一些按鈕,每個按鈕都應該顯示其中一個用戶的信息。您可以根據數組用戶的位置給出按鈕標籤,理想情況下可以使用某些偏移量來減少使用這些標籤進行其他操作時發生錯誤的機會。 (即讓我們假設你有3個按鈕,標籤100,101和102,以及3個用戶在你的陣列中)。

然後,你可以這樣做:

- (IBAction)showLotOfStuff:(id)sender 
{ 
    int userIndex = sender.tag - 100; // you could define 100 as a constant called userOffset or something to make this a little cleaner 
    if(users.count <= userIndex) 
    return; // out of bounds, probably want to check for this and handle it somehow 

    MyObjectType *currentUser = [users objectAtIndex:userIndex]; 
    // do whatever with your user 
} 

這是一個普遍的例子。具體的實施取決於你沒有提供的更多細節。

+0

迪瑪,thx爲您的幫助!但是這裏很難解釋每個用戶的信息,因爲它來自大量的計算和數組以及字典。其實我想要使用另一個數組來包含結果,我想我正在尋找更多的動態命名..但我在這裏搜索並搜索,發現它不太可能,所以我會考慮你的建議或只是複製代碼,因爲我有2套信息無論如何..thx再次! – Walter 2012-07-26 05:07:30

相關問題