2016-11-08 4 views
1

Ich bin neu bei Swift und habe ein Projekt übernommen, das in swift 2.2 mit xCode 7.4 geschrieben wurde. Ich konvertiere es in xCode 8 und swift3 und habe nur einen einzigen Compiler-Fehler übrig. Bitte helfen Sie dies zu beheben.Swift3 - '[String: AnyObject]' ist nicht in '[HTTPCookiePropertyKey: Any]' konvertierbar

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

Hier ist die problematische Codezeile.

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

Würde dies beheben?

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

Ersetzen Sie einfach 'AnyObject' durch' Any', aber ich denke, Sie können die erste Art Cast komplett weglassen. – vadian

+0

Können Sie mir bitte die komplette Zeile geben, die die erste Typumwandlung auslassen würde? – markhorrocks

+0

Löschen 'as! [String: AnyObject] ' – vadian

Antwort

1

AnyObject wurde mit Any in Swift 3 für nicht spezifizierte Wörterbuch Werte ersetzt.

Da HTTPCookiePropertyKey ist eine Art Alias ​​(NS)String Sie den Typ direkt

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

selbst könnte Vielleicht werfen können

let cookie = HTTPCookie(properties: dict) 

arbeiten.

Verwandte Themen