5

キー付きのプロパティを持つオブジェクトがあります。

func value(key: String) -> AnyObject?
func setValue(value: AnyObject?, key: String)

value2 つの異なるオブジェクトから同じキーを持つ関数から返された値が であるかどうかを確認したいと思いますEquatable。参照があり、ジェネリックでのみ使用できるためEquatable、Swift は文句を言います。関数から返されたオブジェクトが準拠しているかどうSelfかを確認する方法はありますか?AnyObjectvalueEquatable

4

1 に答える 1

-4

Swift 2の変更により、回答を編集しています

プロトコルの適合性を確認するには、単純にisキーワードを使用します。

ただし、プロトコルが使用されている場合は実行できませんSelf(大文字の S に注意してください)。

したがって、次のことができます。

if let myValue = myObject.value(myKey) as? Equatable {
    ...
}
于 2015-10-08T14:25:33.907 に答える