下面的代码给出了错误“'AnyObject'不能转换为'String'”在我将“if let”语句打开以解开从Parse中提取的可选productData的行。我只是想从Parse中的对象中拉出一个String。我到处检查,所有标准答案/解决方案都无法正常工作。有什么想法吗?
此代码大部分直接来自Parse iOS文档Here
import Foundation
import Parse
func getDataFromParse () {
var productDataFromParse = PFQuery(className:"Product")
productDataFromParse.getObjectInBackgroundWithId("uyeXHufDgq") {
(productData: PFObject?, error: NSError?) -> Void in
if error == nil && productData != nil {
if let productTitle = productData["productTitle"] as! String {
self.productTitle = productTitle
}
} else {
println(error)
}
}
}
答案 0 :(得分:0)
productData: PFObject?
对象本身是可选的。你不能下标它,因为它需要先解开。您可以使用可选链接替换productData != nil
检查。
在Swift 1.2中,您可以在同一语句中执行此操作并进行错误检查:
if let productTitle = productData?["productTitle"] as? String
where error == nil {
self.productTitle = productTitle
}
请注意?
和方括号之间的其他productData
。