iOS Swift:deleteRowsAtIndexPaths 崩溃 [重复]
Posted
技术标签:
【中文标题】iOS Swift:deleteRowsAtIndexPaths 崩溃 [重复]【英文标题】:iOS Swift: Crash on deleteRowsAtIndexPaths [duplicate] 【发布时间】:2015-03-01 23:49:21 【问题描述】:当我从 tableView 中删除一行时,我遇到了崩溃。不知道发生了什么。这是我的代码:
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath)
let items = days[indexPath.row]
self.removeItems(items, indexPath: indexPath)
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return days.count
删除项目
func removeItems(items: [CKRecord], indexPath: NSIndexPath)
for item in items
db.deleteRecordWithID(item.recordID) (record, error) -> Void in
if error != nil
println(error.localizedDescription)
dispatch_async(dispatch_get_main_queue()) () -> Void in
if let index = find(exercises, item)
exercises.removeAtIndex(index)
days.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
【问题讨论】:
你能显示 numberOfRowsInSection 和 numberOfSections 方法吗? 只有一节。刚刚添加了行数方法。 将 deleteRowsAtIndexPaths 替换为 reloadData。并记录天数。看看发生了什么。 可行,但不会删除带有动画的行。 【参考方案1】:在删除(或添加)单元格之前,您需要在相关的 tableView 上调用beginUpdates()
。然后删除或添加单元格。完成后,致电endUpdates()
。
一旦您致电endUpdates()
。请记住,一旦您调用endUpdates()
,您的 tableView 模型必须与您删除或添加的部分和行数一致。
开始和结束更新允许用户界面为所有单元格更改呈现连贯的独特动画。
tableView.beginUpdates()
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
tableView.endUpdates()
【讨论】:
以上是关于iOS Swift:deleteRowsAtIndexPaths 崩溃 [重复]的主要内容,如果未能解决你的问题,请参考以下文章