我还有一个问题。
当我通过应用程序编码时,我使用 Parse Framework,并且使用查询从数据库获取用户名:
var showUsername:PFQuery = PFUser.query()!
//showUsername.whereKey("objectId", equalTo: post.objectForKey("user")!.objectId)
showUsername.whereKey("objectId", equalTo: post.objectForKey("user")!)
showUsername.findObjectsInBackgroundWithBlock{
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil{
let user:PFUser = (objects as NSArray!).lastObject as! PFUser
cell.usernameLabel.text = user.username
}
}
我在处理这两行代码时遇到了问题:
//showUsername.whereKey("objectId", equalTo: post.objectForKey("user")!.objectId)
这个我把它注释掉了,因为它说 .objectID 是错误的,所以如果我把它去掉,它说它没问题。所以我想知道它的功能是否相同???
还有这一行:
let user:PFUser = (objects as NSArray!).lastObject as! PFUser
它在 Xcode 上显示是正确的,但是当我运行该应用程序时,它会由于该行代码而卡住并崩溃,因为错误显示“[AnyObject]? 无法转换为 'NSArray'
有什么方法可以解决这个问题吗?
我已经尝试过其他链接所说的内容:
"'[AnyObject]?' is not convertible to 'NSArray' "
"How to set the current user in cell? Swift, Parse "
我的代码中没有错误,并且它运行,但用户名没有更改为实际用户名,它仍然显示“标签”
除非它与缺少 .objectID 的查询有关?
最佳答案
您问题的第一部分(您注释掉的行):
在showUsername.whereKey("objectId", equalTo: post.objectForKey("user")!.objectId)
通过添加 ! 来解开 objectId如下
showUsername.whereKey("objectId", equalTo: post.objectForKey("user")!.objectId!)
您问题的第二部分:
替换
let user:PFUser = (objects as NSArray!).lastObject as! PFUser
由
let user = (objects as! [PFUser]).last
关于ios - "[AnyObject]? is not convertible to ' NSArray',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31863565/