快速编译错误:从“字符串?!”向下转型 'String' 只解开可选项;你的意思是使用'!!'吗?

Axi*_*xil 3 types casting swift

升级到 cocoapods 1.0 后,我收到以下代码行的编译错误:

var strName = String()
var strEmail = String()
var strFacebookID = String()
var strPassword = String()
var objHelper = Helper()

....

let strFirstName = result["first_name"] as! String
let strLastName = result["last_name"] as! String
self.strName = strFirstName + "_" + strLastName
self.strEmail = result["email"] as! String
self.strFacebookID = result["id"] as! String
Run Code Online (Sandbox Code Playgroud)

从“字符串?!” 'String' 只解开可选项;你的意思是使用'!!'吗?

下面是错误的详细截图:http : //imgur.com/Efe1nQf

更新:更多代码在这里:https : //gist.github.com/anonymous/9c91c2eb1ccf269e78a118970468d1e8

vad*_*ian 6

错误消息说它result本身是一个可选的,所以你必须result分别解包和 值。

let strFirstName = result!["first_name"] as! String
Run Code Online (Sandbox Code Playgroud)

或更好地使用可选绑定以获得更高的安全性和更少的类型转换

if let userData = result as? [String:String] {
   let strFirstName = userData["first_name"]!
   let strLastName = userData["last_name"]!
}
Run Code Online (Sandbox Code Playgroud)