2016-04-13 1 views
0

Arrayの内容を再割り当てせずにArrayの内容を再読み込みすることはできませんか?Swift Arrayのコンテンツを再割り当てせずにリロードしますか?

例:

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

私は条件に基づいて、配列内の3番目の項目を変更したいが、私はバックのvar myarrayのに値を再割り当てする必要はありません。

myArrayはtableViewのdataSourceで、最初はisTrue()メソッドがtrueと評価されます。tableViewは3行x、y &zを表示します。ユーザーが何らかの変更を加えると、isTrue()はfalseを返します。だから私は、テーブルビューをリロードするが、& zは、私は変更が行われるようにするためには

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

を再割り当てする必要があり、Yは何も、それはまだXを表示します変わりません。もっと清潔な解決策を求めています。

+0

あなたはこれを行うことによって達成しようとしているかを説明することはできますか? – Valentin

+0

myArrayはtableViewのdataSourceです。isTrue()メソッドがtrueに評価されると、テーブルには3つのx、y、z行が表示されます。 ユーザーが何らかの変更を加えると、isTrue()はfalseを返します。 テーブルビューをリロードしますが、x、y、zが表示されます。 再割り当てする必要があります var myArray = ["X"、 "Y"、isTrue()== true? "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

関連する問題