将Swift 2更新为Swift 3后出现错误

var nicknames = [String]()
var messages = NSArray()
var selectedmsg:PFObject!

query.findObjectsInBackground{
(objects, error) -> Void in

if error == nil
{
 messages = objects!   ***Cannot assign value of type '[PFObject]?' to type 'NSArray'***

for object in objects! {

  self.nicknames.append(object.object(forKey: "userpointer")!.object(forKey: "nickname") as! String)  ***Value of type 'Any' has no member 'object'***
}


self.selectedmsg = messages.object(at: (indexPath as NSIndexPath).row) as! PFObject

self.selectedmsg["file"]!.getDataInBackground{ ***Value of type 'Any' has no member 'getDataInBackground'***


***之间的代码中有三个错误

该代码在Swift 2中运行良好,有人可以帮我在Swift 3中修复相同的代码吗?
请任何帮助将不胜感激。

最佳答案

与往常一样,除非别无选择,否则请勿在Swift中使用NSArray

NSArray不提供任何类型信息,因此编译器不知道它实际上包含PFObject对象。

在这种情况下,您可以选择!通过将messages声明为来启发编译器

var messages = [PFObject]()


稍有变化将解决所有三个错误。

09-06 01:01
查看更多