arrays - 从 [PFObject] 沮丧?到 [PFObject] 只解包选项,你的意思是使用 "!"

标签 arrays xcode swift pfobject

我在 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)")

Xcode file image

最佳答案

在这种情况下最好使用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/

相关文章:

ios - Swift 如何通过按钮将我的 Tableview Cells accessoryType 重置为 .None

javascript - 具有多个条件的 Array.filter

java - Java 中的二维数组未正确更改

iphone - 如何为 iPhone 应用程序制作文本动画以逐字显示?

C99 - 为什么我不能在 Xcode 6 中使用变长字符数组?

ios - 如何创建一个具有创建可放置在不同位置的 UIView 的函数的扩展?

swift - 当父 View 带有标题时如何在 SwiftUI 中隐藏导航栏

arrays - 通过索引拒绝 Ruby 数组元素的惯用方法

arrays - 联结表与外键数组?

ios - 为什么我从命令行找不到 xcodebuild fatal error 模块映射文件