【问题标题】:Query ParseUser Swift 3 Error查询 ParseUser Swift 3 错误
【发布时间】:2017-01-31 18:59:15
【问题描述】:

我收到错误:无法将类型 '([PFObject]?, NSError?) -> Void' 的值转换为预期的参数类型 '([PFObject]?, Error?) -> Void?

导致此错误的代码位于下方。

findUser.findObjectsInBackgroundWithBlock {
        (objects:[PFObject]?, error:NSError?) -> Void in
        if error == nil{
            let user:PFUser = (objects as NSArray).lastObject as PFUser
            cell.usernameLabel.text = user.username

            UIView.animateWithDuration(0.5, animations: {
                cell.typeOfPartyLabel.alpha = 1
                cell.timeOfPartyLabel.alpha = 1
                cell.usernameLabel.alpha = 1
            })
        }
    }


    return cell
}

在过去的几天里,我一直遇到这个错误,我似乎找不到一个可行的解决方案,我发现是用 PFObject 切换 anyObject,但我得到了同样的错误。我正在尝试查询用户名并将其显示在 UITableView 单元格中。

谢谢

【问题讨论】:

    标签: ios uitableview parse-platform swift3


    【解决方案1】:

    这是错误消息的核心所在:

    无法将类型 '([PFObject]?, NSError?) -> Void' 的值转换为预期的参数类型 '([PFObject]?, Error?) -> 无效?

    Swift 3.0 引入了 Error protocol,这就是吸引你的地方。

    尝试以下更改,看看是否能解决您的问题:

    findUser.findObjectsInBackgroundWithBlock {
            (objects:[PFObject]?, error: Error?) -> Void in // Changes NSError to Error
            if error == nil{
                let user:PFUser = (objects as NSArray).lastObject as PFUser
                cell.usernameLabel.text = user.username
    
                UIView.animateWithDuration(0.5, animations: {
                    cell.typeOfPartyLabel.alpha = 1
                    cell.timeOfPartyLabel.alpha = 1
                    cell.usernameLabel.alpha = 1
                })
            }
        }
    
    
        return cell
    }
    

    【讨论】:

    • 它将错误更改为:无法转换类型“[PFObject]?”的值强制输入“NSArray”
    • @Jbarfield101 当我第一次遇到这个问题时,我遇到了一个类似的问题,需要我修复一系列事件。从错误中,您可能在某个时候将 [PFObject] 定义为 ab NSArray,但它现在返回一个 Array。
    • 那么最好的做法是再次声明为 NSArray?
    • @Jbarfield101 您可以尝试这样做,但有时最好通过删除这些来使应用程序符合 Swift 3.0。该决定取决于您/您的团队。
    • 所以我有数组到 NSArray 的地方是这样的:` let array:NSArray = self.partyData.reverseObjectEnumerator().allObjects as NSArray self.partyData = NSMutableArray(array: array) self.tableView .reloadData() }` 我应该如何将其替换为合规性?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    相关资源
    最近更新 更多