2016-10-02 37 views
1

我正在從以下斯威夫特2斯威夫特3自動轉換後,此編譯器錯誤,鍵入'NSDictionary!'有沒有標成員斯威夫特 - 「!NSDictionary的」 3.0轉換問題

類型沒有下標成員

我在this post中看到過類似的問題,但仍然不應該爲NSDictionary工作。

請讓我知道如何解決它。

代碼:

fileprivate var allData:NSDictionary!; 
. 
. 
. 
open func getData(_ key:String) -> AnyObject? 
{ 
    return allData[key]; // error in this line 
} 

回答

2

在夫特3,NSDictionary值類型已被更改爲Any。 因此,下標allData[key]的結果類型爲Any?,不能自動轉換爲AnyObject?

試試這個:

open func getData(_ key: String) -> AnyObject? 
{ 
    return allData[key] as AnyObject? 
} 

但是,如果你用你的allData如圖所示,你爲什麼不聲明爲[String: AnyObject]

和錯誤信息...最好發送一個bug report

+0

謝謝@OOPer,它的工作原理。其實它是一個遺留代碼,現在我只需要轉換爲Swift 3.我不知道爲什麼字典被用來代替。當我獲得時間時我會重構。 –