2016-04-13 57 views
0

是否有重新加載Array的內容而不重新分配它的值?重新加載Swift數組的內容而不重新分配它?

例子:

var myArray = ["X","Y", isTrue() == true ? "Z" : "N"] 

我想改變基於條件的數組中的第三個項目,但我不想重新分配值回VAR myArray的。

myArray是tableView的dataSource,在啓動isTrue()方法計算爲true時,tableView顯示三行x,y & z。當用戶進行一些更改時,isTrue()將返回false。於是我重新加載表視圖,但沒有任何變化仍然顯示X,Y & Z I不得不重新分配

myArray = ["X","Y", isTrue() == true ? "Z" : "N"] 
tableView.reloadData() 

爲了使更改生效。我要求更清潔的解決方案。

+0

你能解釋一下你正在試圖這樣做是爲了達到什麼樣的? – Valentin

+0

myArray是tableView的dataSource,在開始isTrue()方法計算爲true時,表格顯示三行x,y和z。 當用戶進行一些更改時,isTrue()將返回false。 所以我重新加載表視圖,但沒有任何變化仍然顯示X,Y,Z 我不得不重新分配 myarray的無功= [「X」,「Y」,IsTrue運算()==真? 「Z」:「N」] 和tableView.reloadData() 爲了進行更改。 我要求更清潔的解決方案。 –

回答

0
myArray[2] = false 

最好檢查數組第一:

if myArray.count > 2 { 
    myArray[2] = false 
} 
+0

這應該是'myArray [2] = isTrue()== true? 「Z」:「N」(首先檢查邊界) –

+0

雖然'isTrue()== true'沒有意義......應該是'isTrue()'。 – Hamish