2012-09-15 85 views
0

我有一個按鈕,它在按下時執行一個動作。我想給數組添加一個值。該值在按下按鈕後確定。但是,當我在按鈕操作中初始化數組時,數組每次都會重置,清除數組。我想保留數組值。我如何保持數組值?我應該在其他地方初始化數組嗎?如果是這樣,我可以在哪裏?我可以在哪裏啓動陣列?

+4

一切。它不可能爲我們提供正確的解決方案,而無需查看您的代碼:) – Legolas

+0

看起來你的數組只是在方法的局部範圍內,如果你在按鈕操作中初始化它。 – Luwe

回答

3

在創建新陣列之前,請檢查是否已經有一個。

if(!array) 
    array = [[NSMutableArray alloc] init]; 

// ... 

[array addObject:myValueToAdd]; 
+0

我可以只做陣列嗎?你不需要定義數組來知道它是否存在? – jsttn

+1

@jsttn那麼'array'顯然應該被你實際的數組名稱所取代。或者你是什麼意思? – JustSid

+0

好的。那麼你是否在if語句中定義數組?如果是這樣,它怎麼知道數組是什麼? – jsttn

2

你的說法 -

"However, when I initialize the array in the button action, 
the array resets every time, clearing the array" 

不要初始化按鈕動作的陣列。將其初始化爲課程的屬性或使其成爲全局的。

在你的行動爲您的按鈕,只需添加項目到您的數組正如你所說似乎是你一個合乎邏輯的缺陷,沒有事做其實際行爲[self.myArray addObject:myObject]

+2

不要把它放在全局模型中,如果它不屬於類的行爲方法。 –

+0

永遠不要使用全局變量。作爲一個伊娃,它的定位非常好。 – 2012-09-15 20:58:26

+0

@JoshCaswell你說得對。不要讓它成爲全球。這個想法只是解釋了初始化必須是一個,並且應該在所有方法中都可用。 – Legolas