AnyClass型の変数を持つと、その型が別の型の拡張または実装であるかどうかを知ることができますか?例えばAnyClass変数がクラスの拡張または実装であるかどうかを確認
:
var aClass: AnyClass = UIButton.self
// assuming a fictional operator "isOfType"
// Both UIButton and UILabel are subclasses of UIView
aClass isOfType UIButton // true
aClass isOfType UIView // true
aClass isOfType UILabel // false
これを行うための1つの可能な方法は、インスタンスを作成しているが、このようなインスタンスを作成することは必ずしも望ましいことではない可能性があります
var aClass: AnyClass = UIButton.self
let buttonClass = aClass as? UIButton.Type
var aButton: AnyObject = buttonClass!()
aButton is UIButton // true
aButton is UIView // true
aButton is UILabel // false
がいるかどうかを確認するが、他の手段でありますAnyClassには、別の型を拡張する型が含まれていますか?
これは間違いなく役立ちます。私はNSObjectメソッドなしでこれを行う方法があるか、または直接型構文を直接使用するかどうかはまだ疑問に思っています。 – LopSae
@LopSae純粋なSwiftクラスでも 'isSubclassOfClass'が動作するようです(私の更新を見てください)。 – hennes
@LopSae 'Type'プロパティと一緒に' is'を使うのはおそらくこれをやっている最善の方法です(私の2回目の更新を見てください)。 – hennes