我有两个原型细胞。如果messagesArray[indexPath.row]
值为“”,则显示一个,如果该值包含字符,则显示另一个。其中一个单元格的行高大于第二行,并包含其他变量。它们都连接到自己的单元类,并拥有自己的单元标识符。我希望它们在同一个表视图中共存,在一个部分下,但我正在努力实现这一目标。我一直在fatal error: Array index out of range
。正在从异步数据库请求填充数组值,这可能是解释。
我做错了什么/我怎样才能成功做到这一点?
var messagesArray = [String]()
override func viewDidLoad() {
super.viewDidLoad()
var query = PFQuery(className: "Class")
query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
if error == nil {
if let objects = objects {
for object in objects {
if let message = object["message"] as? String {
self.messagesArray.append(message)
}
}
}
} else {
println(error)
}
}
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if self.messagesArray[indexPath.row] == "" {
var cell = tableView.dequeueReusableCellWithIdentifier("cellOne", forIndexPath: indexPath) as! CellOne
return cell
} else {
var cell = tableView.dequeueReusableCellWithIdentifier("cellTwo", forIndexPath: indexPath) as! CellTwo
return cell
}
}
编辑:如果messagesArray[indexPath.row] ==
某个值不是""
(实际上有一条消息),那么显示消息的第一个单元格将大于第二个单元格并显示为第二个单元格中不存在的UILabel
。