我正在尝试从parse中检索用户配置文件图像。我有一个集合视图,我正在检索所有人张贴的图像。我还想在单元格中显示每个用户的配置文件图像。我在用下面的代码

 let query = PFQuery(className: "Posts")
    query.findObjectsInBackgroundWithBlock{(question:[AnyObject]?,error:NSError?) -> Void in

        if error == nil
        {
            if let allQuestion = question as? [PFObject]
            {
                self.votes = allQuestion
                self.collectionView.reloadData()
            }
        }
    }


    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("newview", forIndexPath: indexPath) as! NewCollectionViewCell
    let item = self.votes[indexPath.row]

    var UserQuery:PFQuery = PFUser.query()!
    if let user = PFUser.currentUser() {
        UserQuery.whereKey("uploader", equalTo: user)
    }
    UserQuery.findObjectsInBackgroundWithBlock{
        (objects:[AnyObject]?, error:NSError?)->Void in
        if error == nil{

            let user:PFUser = (objects as NSArray!).lastObject as! PFUser
            cell.userName!.text = user.username

            let PhotoFile:PFFile = user["profilePicture"] as! PFFile
            PhotoFile.getDataInBackgroundWithBlock(){
                (ImageData:NSData?, error:NSError?)->Void in
                if error == nil{
                    let Image:UIImage = UIImage(data: ImageData!)!
                    cell.profileImageView.image = Image
                }}}}

但是,我得到一个错误,说致命错误:在展开let user:PFUser = (objects as NSArray!).lastObject as! PFUser处的可选值时意外发现nil
ios - 在解析时解开可选值错误时意外发现nil-LMLPHP
问题是,我无法从创建的指针中检索此特定用户的配置文件图像和名称。谢谢您。

最佳答案

我得到一个错误,说致命错误:在展开可选值时意外发现nil

let user:PFUser = (objects as NSArray!).lastObject as! PFUser

所以别这么说。任何时候你使用这样的感叹号,你都会要求它失败时崩溃。这就是发生的事。所以不要用感叹号。使用问号,如下所示:
 if let user = (objects as? NSArray)?.lastObject as? PFUser {
      // ...
 }

关于ios - 在解析时解开可选值错误时意外发现nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31822068/

10-12 00:32
查看更多