【问题标题】:Xcode 7 Error Code "Cannot convert value type([AnyObject]Xcode 7 错误代码“无法转换值类型([AnyObject]
【发布时间】:2015-11-23 19:07:26
【问题描述】:

这是我的代码的副本,错误是给我的,错误在它显示query.findobjectsInBackgroundWithBlock 的行上。完整的错误消息是:`Cannot convert value type ([AnyObject]!, NSError!) -> Void to expected argument type 'PFQueryArrayResultBlock?'

// Retrieve Messages
func retrieveMessages() {

    // Create a new PFQuery
    var query:PFQuery = PFQuery(className: "Message")

    // Call findobjectsinbackground
    query.findObjectsInBackgroundWithBlock {(objects:[AnyObject]!, error:NSError!) -> Void in

    // Clear the messagesArray

        self.messageArray = [String]()
        // Loops through the objects
    for messageObject in objects {

        // Retrieve the text column value of each PFObject
        let messageText:String? = (messageObject as! PFObject)["Text"] as? String
        // Assign it into our messagesArray
        if messageText != nil {
            self.messageArray.append(messageText!)
        }
    }
        // Reload the tableview
    self.messageTableView.reloadData()
    }
}

【问题讨论】:

  • 您确定([AnyObject]!, NSError!) -> Void 是该块的正确签名吗?我会查找 PFQueryArrayResultBlock 并复制该声明...

标签: xcode swift


【解决方案1】:

方法签名在 Swift 2.0 中使用 Parse SDK 1.10.0 进行了改进。将[AnyObject]! 替换为[PFObject]?[PFObject] 是可选的,因为 Swift 不知道它是否存在。

func retrieveMessages() {

var query:PFQuery = PFQuery(className: "Message")

query.findObjectsInBackgroundWithBlock { (objects: [PFObject]?, error: NSError?) -> Void in

    self.messageArray = [String]()

    for messageObject in objects {

        let messageText:String? = (messageObject as! PFObject)["Text"] as? String

        if messageText != nil {
            self.messageArray.append(messageText!)
        }
    }

    self.messageTableView.reloadData()
}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 2020-05-09
    相关资源
    最近更新 更多