有问题要分配uiImageFile = image!
。如果它试图分配self.myImage = image!其中myImage是一个全局变量,它的工作原理。
有可能做到吗?
代码正在检索图像,如果直接指向,单元格也会拍摄图像。只是这座桥不起作用。它只适用于图像。
println("TESTSTRING\(indexPath.row)")
上方的以下测试行return
也可以从testString = "\(indexPath.row)"
内的getDataInBackgroundWithBlock
获取并打印值。
对于问题标题感到抱歉。不知道如何用一句话来恢复这个问题。
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "Cell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! HobbieFeedTableViewCell
let object: PFObject = self.timelineData.objectAtIndex(indexPath.row) as! PFObject
var myText = object.objectForKey("postText") as? String
let userImageFile = object.objectForKey("postImage") as? PFFile
var uiImageFile = UIImage()
var testString = String()
println(userImageFile, indexPath.row)
if userImageFile != nil {
userImageFile?.getDataInBackgroundWithBlock({ (imageData:NSData?, error:NSError?) -> Void in
if error == nil {
if let myImageData = imageData {
let image = UIImage(data:myImageData)
self.myImage = image!
uiImageFile = image!
testString = "\(indexPath.row)"
}
}
}, progressBlock: { (percent: Int32) -> Void in
})
}
cell.cellTitle.text = myText
cell.cellImage.image = uiImageFile
// cell.cellImage.image = myImage
println("TESTSTRING\(indexPath.row)")
return cell
}
答案 0 :(得分:0)
cell.cellImage.image = uiImageFile
在检索到uiImageFile之前执行。这是因为
getDataInBackgroundWithBlock 在检索完成之前立即返回。
您可以通过以下方式修复它:(1)在viewDidLoad函数中将所有图像检索到本地数组中(2)在检索完成时使用推送通知以触发tableview.reload