将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]()
稍有变化将解决所有三个错误。