【发布时间】:2015-08-06 18:46:24
【问题描述】:
这里我有另一个问题。
当我通过我的应用程序编码时,我正在使用 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 的查询有关?
【问题讨论】:
-
试试
(objects as NSArray?)?.lastObject as! PFUser。无论如何,Swift 数组还有一个 last 属性。所以你可以使用let user:PFUser? = objects.last as? PFUser -
当我尝试这样做时,它显示“从 '[AnyObject] 投射?”到不相关的类型 'NSArray' 总是失败"
标签: ios iphone swift cocoa-touch parse-platform