構造体の配列を逆に列挙しています。予想される要素に遭遇したとき、要素の値を更新したいと思います。構造体としての要素型を維持しながらこれを行う方法はありますか?別のクラスにおいて構造体型の配列要素を逆順に列挙しながら更新する
struct MyModel {
var name
mutating func updateName(newName: String) {
self.name = newName
}
}
、私はそのように宣言私のモデルクラスの配列を持っている:
var array: Array<MyModel> = []
私は配列の内容は、> 0のカウントは私がしたいことをいっぱいしました配列の末尾から要素を見つけて、それらが遭遇したときに更新します。
func updateElement() {
let newName = "Some Name"
let reversedArray = array.reverse()
for (index, element) in reversedArray.enumerate() {
var el = reversedArray[reversedArray.startIndex.advancedBy(index)]
el.updateName(name: newName)
}
// This does not show the array as having updated contents
print(array)
}
どのようにして配列を更新することができますか?私は新しい要素を削除したり挿入したりしたくない。
あなたのコードは説明と実際には一致しません。特定の要素を探すのではなく、 'reversedCmdList'が定義されていません。書かれているように、これはすべての要素の名前を "Some Name"に変更しようとしているように思えますが、あなたが意味するものではありません。実際には、いくつかのルールに一致する最後の要素を変更したいだけですか? –