ios - "[AnyObject]? is not convertible to ' NSArray'

标签 ios iphone swift cocoa-touch parse-platform

我还有一个问题。

当我通过应用程序编码时,我使用 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/

相关文章:

ios - 仅以秒为单位的倒计时(表格 00 :20 to 0) using NSTimer

ios - 仅通过Wifi测试iOS连接

objective-c - 在 Interface Builder 中设置接口(interface)并在 for 循环中重用它

iphone - UIPopoverController 中的 UINavigationController : setting the title

ios - 无法将 UITapGestureRecognizer 添加到 UITabbarController 内的 UITableViewController

ios - 检查位置权限集

ios - 最佳实践 - 在 Swift 中对混合对象进行排序

ios - 如何将 stackViews 添加到 UITableViewCell?

iphone - willAnimateRotationToInterfaceOrientation 未在一个 subview 中调用,而另一个 subview 可见并已旋转

ios - Coreplot iOS - 图表条之间的颜色空间