前提
Xcode、Swiftでゲームを作ろうとしています。
実現したいこと
配列内の構造体のプロパティを一括で書き換えたいです。
(ソースコードは簡略化してますが、実際は計算式を入れます)
発生している問題・エラーメッセージ
Cannot assign to property: 'num' is a 'let' constant
該当のソースコード
var myCharacterList = [mainCharacter,sub1Character] for num in myCharacterList { num.body = 1 }
※mainCharacterとsub1Characterは構造体で、body: intというプロパティを持っています。
※structで構造体を宣言したswiftファイル、var mainCharacterとvar sub1Characterで構造体をインスタンス化したswiftファイルはそれぞれ別にあります。
試したこと
例えば下記のように、配列にせず直接mainCharacterの値を書き換える事には成功しました。
mainCharacter.body = 1
さらに下記のように、配列に入れた上でfor in文を使わずに値を書き換える事にも成功しています。
myCharacterList[0].body = 1
補足情報(FW/ツールのバージョンなど)
Xcode:Version 14.2 (14C18)
構造体配列をfor in文で扱うと値が書き換えられない、などはどこを調べても出てこず、またエラーで言われているようにletではなくvarで宣言しているので、なぜこのようなエラーになるのかどうにもわかりません。
初心者ですが、なんとか解決したいと思っておりますのでお力添えください。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/01/11 06:26