详细(字幕)文本不会出现。但是,数据是可用的,因为添加了println()调用后,它将使用期望的数据将Optional(“ data”)打印到控制台。在情节提要中,将UITableViewController设置为适当的类,将Table View Cell Style设置为“ Subtitle”,并将重用标识符设置为“ cell”。如何显示字幕信息?
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell dispatch_async(dispatch_get_main_queue(), { () -> Void in cell.textLabel.text = self.myArray[indexPath.row]["title"] as? String cell.detailTextLabel?.text = self.myArray[indexPath.row]["subtitle"] as? String println(self.myArray[indexPath.row]["subtitle"] as? String) // The expected data appear in the console, but not in the iOS simulator's table view cell. }) return cell }
这里有同样的问题(从我读到的内容来看,也许是iOS 8中的错误?),这就是我们的解决方法:
从情节提要中删除原型单元
删除此行:
var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell
替换为以下代码行:
let cellIdentifier =“单元格”
var cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier)as?UITableViewCell 如果单元格== nil { 单元格= UITableViewCell(样式:UITableViewCellStyle.Value2,复用标识符:cellIdentifier) }
Swift 3.1更新
let cellIdentifier = "Cell" var cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier) if cell == nil { cell = UITableViewCell(style: UITableViewCellStyle.value2, reuseIdentifier: cellIdentifier) }
Swift 4.2更新-简化
let cell = UITableViewCell(style: UITableViewCell.CellStyle.value2, reuseIdentifier: "cellId")