1
我已經得到了我想根據對象的一個特定值(即self.example.value
)進行排序通過對象的數組。我已經創建了多個可變數組:NSMutableArray的是for循環的每次迭代後釋放?
NSMutableArray *array1, *array2, *array3 = [[NSMutableArray alloc] initWithObjects: nil];
,然後通過使用for循環原始數組迭代。如果對象符合條件(self.example.value == someValue
)。我將這個對象添加到上面創建的一個新陣列中。但是,當我稍後開始使用數組時,我注意到它們是空的。使用調試器,我注意到以下幾點:
for (customClass *object in arrayOfObject){ //starting here the debugger has NONE of the arrays created above
if (object.value == someValue){//after performing this line, the debugger shows array1 in memory BUT nothing in it EVEN if the 'if' statement isn't TRUE.
[array1 addobject:object];
} else if (object.value == someOtherValue){//after performing this line, the debugger shows array2 in memory BUT nothing in it EVEN if the 'if' statement isn't TRUE.
[array2 addobject:object];
} //and so forth
所以基本上,for循環的每次迭代清除上面創建的陣列。當它通過代碼進行時,無論'if'語句是否爲TRUE,數組都被分配,但未被填充。我在這裏錯過了什麼?
所以沒有「單線」初始化多個相似的對象? – KronoS
@KronoS:沒有。您可以通過快捷鍵多*相同*變量,但有沒有簡單的方法,說:「所有這些變量應持有調用一個方法,每一次變量的結果」。 – Chuck
即使你使用了'NSMutableArray'就像指定初始化更好:'[NSMutableArray的頁頭] initWithCapacity:0];' – Alladinian