私は構造体をswiftで使用しています。Swiftで構造体属性を反復処理する
class Constants {
struct const {
static let signupFirstName = "signupFirstName"
}
}
私は構造体を反復したい。反復のために私が使用しています:
let mirrored_object = Mirror(reflecting: Constants.const())
for (index, attr) in mirrored_object.children.enumerate() {
if let property_name = attr.label as String! {
print("Attr \(index): \(property_name) = \(attr.value)")
}
}
しかし、それが原因でstatic
値のコードに入りませんが。これを反復する方法はありますかstruct
?
ありがとうございます。構造体に複数の静的変数があるとします。静的let signupLastName = "signupLastName"、静的let signupEmail = "signupEmail"など。ここで、 "return Mirror(self、children:[" signupFirstName ":const.signupFirstName] ) "、この構造体を動的にループしたい。どのようにできるのか?助けてください。 – Rupshikha
@ user3897036残念ながら、何かを動的にループしてカスタムミラーを作成する方法はありません。 MirrorTypeのイニシャライザは辞書_literal_のみを受け付けます。これは最終的に、反映させたい正確な値を渡す必要があり、変数などに基づいてループや生成の可能性がないことを意味します:(再びSwiftリフレクションが良くなります道路を下っていますが、今は非常に限られており、それほど有用ではありません。あなたが達成しようとしていることに対して、別のアプローチを試してみてください。 –
あなたのソリューションは魅力的です。 – Rupshikha