2
我想對可選<進行擴展詞典< String,AnyObject > >。我怎麼寫這個?擴展可選<Dictionary <String,AnyObject >>
,我希望它是這樣的
extension Optional where
Wrapped : Dictionary,
Key : String,
Value : AnyObject { ... }
但就是了字典直接的參數時,即使這個工作,我希望它會抱怨該字符串不是一個協議。所以我儘量
extension Optional where Wrapped : Dictionary<String, AnyObject> { ... }
,但在這裏抱怨說,type 'Wrapped' constrained to non-protocol type 'Dictionary<String, AnyObject>'
也許值得一提的是,'讓富=可選([ 「ASDF」:123])'不會有訪問'.doSomething',因爲'foo'的類型是'Optional>',並且由於'Int'是一個值類型,所以它不符合AnyObject。另一方面,'let foo:[String:AnyObject]? =可選的([「asdf」:123])'_will_可以訪問'.doSomething()'(這是上面例子中隱式類型的用法),這個單項的'Value' __NSCFNumber'(obj-c/foundation _class_ type)。 –
dfri
@dfri你是對的,如果你導入基金會,否則沒有這樣的橋樑(所以,這是罰款和預期) – user3441734