拡張機能を実装しようとしていますが、Dictionary
オプションの値を処理したいと考えています。しかし、何をしても、[String: String?]
辞書でメソッドを使用すると、オプションで値をバインドできません。オプションの値を適切に処理する辞書の拡張機能をどのように作成しますか?
次の拡張機能を検討してください。
extension Dictionary {
func someMethod() {
for (key, value) in self {
if let valueString = value as? String {
println(" \(key) = \(valueString)")
} else {
println(" \(key) = \(value) cannot be cast to `String`")
}
}
}
}
したがって、次のコードを検討してください。
let dictionary: [String: AnyObject?] = ["foo": "bar"]
dictionary.someMethod()
そしてそれは不思議なことに報告します
foo = Optional(bar) cannot be cast to `String`
オプションの値を持つディクショナリ パラメーターを処理する非拡張メソッドを作成できますが、Dictionary
.