1
クラスのインスタンスの属性を動的に設定/取得する方法を理解しようとしています。インスタンスの属性を動的に取得するSwift 3
Userクラス:
class User: NSObject {
var email: String = ""
var password: String = ""
}
私は設定/属性にこのような何かを取得しようとしている、(私は.send()
が存在しないことを知っているが、私はそれが可能だ場合はそのような何かを見つけようとしている)
var user = User()
// Set
user.send('email') = "[email protected]"
// Get
print(user.send('email'))
このCAPAを使用して任意の希望非NSObjectベースの型に対する互換性? –
素晴らしい、完璧に働いた! – danielavila
@PauloMattosいいえ、これにはobjcランタイムが必要です。ただし、https://github.com/apple/swift-evolution/blob/master/proposals/0161-key-paths.mdを参照してください。ほとんどの場合、Cocoa以外のSwiftに文字列を渡すことはできません;それは恐ろしく危険です;少なくとも私たちがリフレクションを得るまでは、それでもそれは非常に異なるでしょう)。しかし、間接的にプロパティを参照できるようになります。今日では、クロージャを使用してこれらの問題を一般的に解決します。 –