我有问题从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
}
答案 0 :(得分:1)
那是因为你从UITableViewCell
sendAsynchronousRequest
关闭了handler
。闭包的返回类型为void
。
您在cellForRowAtIndexPath
中执行异步请求的当前方法存在缺陷,因为在异步请求完成之前,单元格将返回。
您应该执行异步请求,在完成后更新模型,然后重新加载表视图。