我在 Xcode 中出现一个错误,提示“Downcast from '[PFObject]?'” '[PFObject]' 只解包可选值;您是要使用“!”吗?
var iDArray = [String]()
var nameArray = [String]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let ObjectIDQuery = PFQuery(className: "Songs")
ObjectIDQuery.findObjectsInBackgroundWithBlock({
(objectsArray: [PFObject]?, error: NSError?) -> Void in
var objectIDs = objectsArray as! [PFObject]
for i in 0...objectIDs.count{
self.iDArray.append(objectIDs[i].valueForKey("objectID") as! String)
NSLog("\(objectIDs)")
最佳答案
在这种情况下最好使用guard
。下面的代码将安全地解包可选的 objectsArray
并且,如果可选的是 nil
,它将不会执行进一步的代码。你也可以把这部分代码写得更漂亮一点:)
ObjectIDQuery.findObjectsInBackgroundWithBlock() { (objectsArray: [PFObject]?, error: NSError?) -> Void in
guard let objectIDs = objectsArray else { return }
self.iDArray += objectIDs.map { $0.valueForKey("objectID") as! String }
}
关于arrays - 从 [PFObject] 沮丧?到 [PFObject] 只解包选项,你的意思是使用 "!",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35961624/