Xcode 7 错误代码“无法转换值类型([AnyObject]
Posted
技术标签:
【中文标题】Xcode 7 错误代码“无法转换值类型([AnyObject]【英文标题】:Xcode 7 Error Code "Cannot convert value type([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
并复制该声明...
【参考方案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()
【讨论】:
以上是关于Xcode 7 错误代码“无法转换值类型([AnyObject]的主要内容,如果未能解决你的问题,请参考以下文章
操场上的 NSMutableArray 导致 Xcode 7 出现错误
UITableVIewCell 错误 Xcode 7 / Swift 2
将 Xcode 6 beta 6 更新到 beta 7 后出现“可选错误”
带有 iOS 9.2 dataWithContentsOfURL 的错误 Xcode 7.3