0
給定結構有一個屬性初始化 - <String, Any>
類型的空字典:如何檢查是否詞典在SWIFT 3
struct Foo {
var bar:Dictionary<String, Any> = [:]
}
和結構的擴展與自定義initalizer:
extension Foo {
init(json: [String: Any]) {
if let bar = json["bar"] {
self.bar = bar as! Dictionary<String, Any>
}
}
}
我會喜歡在我的代碼中進一步查看(在實例化Struct後)如果bar
我的Foo
結構中的屬性沒有默認的[:]
值:
let param:Dictionary<String, Any> = ["bar": 12]
let options = Foo(param)
if (options.bar != [:]) {
// ok, the bar is set - do something
}
的param
字典是用戶提供的JSON對象必須具有類型<String, Any>
,因爲它可以包含eiter字符串的:int或字符串:字符串值。
不幸的是,上述if
聲明給了我:
Binary operator '!=' cannot be applied to operands of type 'Dictionary<String, Any>' and '[AnyHashable : Any]'
使用方法的isEmpty如果'(options.bar.isEmpty)' –