ios - Swift 3 解析查询

标签 ios parse-platform swift2 swift3

我将 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'***

***之间的代码有3处错误

代码在 swift 2 中运行良好,有人可以帮我修复 swift 3 中的相同代码吗 请提供任何帮助。

最佳答案

一如既往,除非别无选择,否则不要在 Swift 中使用 NSArray

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

在这种情况下,您可以选择!通过将 messages 声明为

来启发编译器
var messages = [PFObject]()

这一微小的变化将解决所有三个错误。

关于ios - Swift 3 解析查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39424178/

相关文章:

swift - 在使用 Parse 之前,必须使用 registerSubclass 注册该类

ios - UIPickerView 默认行

swift - 身份验证按钮在 Fabric Digits Integration 中不可见

ios - did设置使用建议?

ios - 收到错误 : FT_Open_Face failed: error 2

javascript - Parse.com CloudCode 是否处理 response.success() 之后的代码?

ios - 导航到 ViewController 并关闭 VC

ios - Swift 中的解析和 GMaps iOS SDK 不兼容?

ios - 我应该在 iOS/OS X 应用程序中的哪里初始化我的单例?

iphone - Objective-C 中的数组变量访问问题