2012-11-20 54 views
0

我知道我會如何使用NSMutableArray來實現這一目標,但最後清空整個NSArray類的正確方法是什麼。我需要這樣做,因爲我需要重新加載一個tableView。我使用ARC。RemoveAllObjects等價的fror NSArray

+0

只是出於好奇,是什麼讓你認爲一個實現代碼如下** *有*使用'NSArray'作爲它的數據源? – borrrden

+0

@borrrden我不這麼認爲,但我在工作中使用別人的代碼,並且我不想改變超過必要的 –

+0

只是做'array = nil;' – Venkat

回答

1
NSArray *yourArray = [ whatever objects you have ] 

//to empty this array 
yourArray = [NSArray array]; 
+0

即使在您發佈答案之前,我發現您的解決方案是最佳選擇。所以......要點是你有最好的答案。 –

1

NSArray是一個不可變(不可更改)的類,因此無法從數組中刪除元素。基本上,你將不得不丟棄陣列並用新的NSArray替換它。或者,您可以使用NSMutableArray

+0

如果我使用ARC,還需要釋放它嗎?我不習慣使用它,所以很抱歉的愚蠢問題。 –

+0

試一下,編譯器不會讓你在ARC模式下調用「release」 – borrrden

+0

對不起,錯過了你正在使用ARC。我更新了答案 – mttrb

4

NSArray是不可變的類型。創建後不能更改它的內容。

可以使用NSMutableArray或將其替換爲新的(空的)NSArray。

0

你不能空非可變的NSArray,最好的辦法是讓你的陣列的可變副本:

NSMutableArray *arr=[yourArr mutableCopy]; 
[arr removeAllObjects]; 
+0

這不會清空原始數組 – borrrden

+0

是的,我知道;)只是因爲你不能清空非可變的NSArray。 – Mat