TableView单元格无法转换为Void

时间:2015-02-03 07:15:05

标签: ios swift xcode uitableview

我有问题从cellForRowAtIndexPath方法返回一个单元格。我一直收到错误TableViewCell is not convertible to void这对我来说是新鲜事,因为我以前从来没有弄过这个错误。继承我的cellForRowAtIndexPath方法:

 override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!, object: PFObject?) -> PFTableViewCell! {
    let cell = tableView.dequeueReusableCellWithIdentifier("CustomCell", forIndexPath: indexPath) as TableViewCell
    cell.userName.text = object?.valueForKey("FBName") as? String
    let userProfilePhotoURLString = object?.valueForKey("pictureURL") as? String

    var pictureURL: NSURL = NSURL(string: userProfilePhotoURLString!)!
    var urlRequest: NSURLRequest = NSURLRequest(URL: pictureURL)
    NSURLConnection.sendAsynchronousRequest(urlRequest, queue: NSOperationQueue.mainQueue()) { (NSURLResponse response, NSData data,NSError error) -> Void in
        if error == nil && data != nil {
            cell.userImage.image = UIImage(data: data)
        }

    cell.ratingsView.show(rating: 4.0, text: nil)

    return cell
}

1 个答案:

答案 0 :(得分:1)

那是因为你从UITableViewCell sendAsynchronousRequest关闭了handler。闭包的返回类型为void

您在cellForRowAtIndexPath中执行异步请求的当前方法存在缺陷,因为在异步请求完成之前,单元格将返回。

您应该执行异步请求,在完成后更新模型,然后重新加载表视图。