2016-11-08 80 views
1

我剛剛接觸Swift並接管了一個使用xCode 7.4編寫的swift 2.2項目。我將它轉換爲xCode 8和swift 3,並且只剩下一個編譯器錯誤。請幫助解決這個問題。Swift3 - '[String:AnyObject]'不能轉換爲'[HTTPCookiePropertyKey:Any]'

'[String : AnyObject]' is not convertible to '[HTTPCookiePropertyKey : Any]' 

這是違規的代碼行。

let cookie = HTTPCookie(properties: dict as! [String : AnyObject] as! [HTTPCookiePropertyKey : Any]) 

這會修復嗎?

let cookie = HTTPCookie(properties: dict as! [HTTPCookiePropertyKey : Any]) 
+0

只需用'Any'替換'AnyObject',但我想你完全可以忽略第一個類型轉換。 – vadian

+0

你能給我一個完整的行,可以省略第一個類型轉換嗎? – markhorrocks

+0

刪除'as! [String:AnyObject]' – vadian

回答

1

AnyObject已被替換爲在Any夫特3爲未指定的字典中的值。

由於HTTPCookiePropertyKey(NS)String一個類型別名,就可以把類型直接

let cookie = HTTPCookie(properties: dict as! [HTTPCookiePropertyKey : Any]) 

甚至

let cookie = HTTPCookie(properties: dict) 

可以工作。

相關問題