4

タイプ「AnyObject?」の値を追加すると、次の方法でタイプ '[String : AnyObject]' のディクショナリに値を追加することはできません。これは実際に私が期待したことです。私の意見では、オプションの型をオプションではない型に割り当てることは失敗するはずです。

var myDict : [String : AnyObject] = [ "Key1" : "Value1" as AnyObject? ]

しかし、最初に空の辞書を初期化してからそれに値を追加すると、なぜこの手順が機能するのでしょうか?

var myDict = [String : AnyObject]()
myDict["Key1"] = "Value1" as AnyObject?

Apple https://developer.apple.com/library/content/samplecode/GenericKeychain/Introduction/Intro.htmlの GenericKeychain の例でこのアプローチを見てきました 。

4

3 に答える 3

0

上記の例では、割り当てられたがオプションであるのに対し、myDict非オプションで推論されます。それがエラーの理由です。これで問題が解決します。AnyObjectAnyObject

var myDict : [String : AnyObject?] = [ "Key1" : "Value1" as AnyObject?]
于 2016-12-26T17:07:39.550 に答える