- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
当我尝试删除从 Core Data 的 NSManagedObject
派生的 Product
类型的对象时。可以成功移除该对象。但它在 tableView.deleteRows(at:with:)
行崩溃了。
所以,每次崩溃的时候,我再次打开应用程序,成功删除了对象,但我不知道为什么在tableView.deleteRows(at:with:)
中崩溃了。
我该如何解决?
class ProductListInSection {
let sectionName: String
var productsInSection: [Product]
init?(sectionName: String, productInSection: [Product] ){
guard !sectionName.isEmpty else {
return nil
}
self.sectionName = sectionName
self.productsInSection = productInSection
}
}
var categorySections: [ProductListInSection]
// ...
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == UITableViewCellEditingStyle.delete {
let element = self.categorySections[indexPath.section].productsInSection[indexPath.row]
AppDelegate.viewContext.delete(element)
do {
try AppDelegate.viewContext.save() // successfully removed.
} catch {
print("Fail: \(error)")
return
}
tableView.deleteRows(at: [indexPath], with: UITableViewRowAnimation.automatic) // crashed here.
}
}
错误信息如下:
2017-04-21 15:54:42.159 POS[20241:2852960] *** Assertion failure in -[UITableView _endCellAnimationsWithContext:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3600.7.47/UITableView.m:1737
最佳答案
您忘记从数组中删除对象。在 productsInSection
上使用 remove(at:)
并从数组中删除对象,然后调用 deleteRows(at:with:)
。
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == UITableViewCellEditingStyle.delete {
let element = self.categorySections[indexPath.section].productsInSection[indexPath.row]
AppDelegate.viewContext.delete(element)
do {
try AppDelegate.viewContext.save() // successfully removed.
} catch {
print("Fail: \(error)")
return
}
//Remove the object from array
self.categorySections[indexPath.section].productsInSection.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: UITableViewRowAnimation.automatic) // crashed here.
}
}
关于swift - tableView.deleteRows(在 :with:) crashed every time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43537892/
我将我的语句声明为 result.concur_update ,但是如果我尝试使用 deleterow() ,则会显示 deleterow() 错误仅适用于 resultset.concur_upda
我有这个代码: var table = document.getElementById("editTable"); var row = table.insertRow(-1); var i = row
我做了一个查询来删除 UITableView 中的指定行,但是当 deleteRows 被称为 UITableView 滚动到顶部时出现问题,那么如何防止它滚动到顶部?以及为什么滚动到顶部! 我尝试调
我正在尝试构建一个数据导入工具,它接受来自用户的 EXCEL 文件并解析文件中的数据以将数据导入我的应用程序。 我在使用 DeleteRow 时遇到了一个奇怪的问题,我似乎无法在网上找到任何信息,尽管
h3110 3v3ry0n3,尤其是 EPPlus 团队! 我有一个这样的 Excel 模板: _______________________________ | Title 1 |
我已经看到了很多关于这个主题的主题,但我仍然有错误...... 这是我在 tableview 委托(delegate)方法中的代码(当用户滑动并单击单元格上的删除按钮时调用): self.tableV
我正在开发一个在表格中显示音乐记录的应用程序。该表每天分为一个部分。 代码按预期工作,但一旦删除了一个项目,一些行就会呈现为白色。然而,那些白行仍然可以被删除,但不响应didSelectRowAt。
在 API 调用成功时调用以下代码以从列表中删除项目 self?.myWishlistArry?.remove(at: indexPath.row) self?.myWishListTableView
我有以下问题: 无法使用结果集 deleteRow 函数删除表行。我的代码是这样的: con = SqlService.getConnection(DB.NIPO_GBS_HIGHWAY); S
我有一张 table 。在每一行的末尾都有一个 href“X”,它删除了这一行。这很简单。现在,当您点击任何第 2 行的“X”时,它会删除第 2 行,但是当您点击第 3 行时,它会删除第 4 行。 这
我正在开发的应用程序出现不稳定的问题。我有一组轨道显示在表格 View 中。在此 TableView 中,用户可以向左滑动单个轨道,然后会出现一个包含三个项目的菜单。其中之一是删除操作。这是这个 Ac
我需要删除200-300行(不包括第1行)。下面的脚本出现了超出范围的错误,并且运行缓慢。有人可以帮助您加快流程吗? **如果可能排除ROW_1 function clearRange() { v
在 deleteRows(at:with:) 从我的 TableView 中删除任何行后,我无法通过 becomeFirstResponder() 获取可重用自定义单元格中的文本字段以获取焦点>(在调
当我尝试删除从 Core Data 的 NSManagedObject 派生的 Product 类型的对象时。可以成功移除该对象。但它在 tableView.deleteRows(at:with:)
我有以下 PHP 代码来生成一个表,其中的行的列具有以下属性:“id”、“lastname”和“firstname”。我想为删除相应行的每一行添加一个按钮,并让此行尝试这样做:echo '';在下面的
我有一个带有表的组件,该表加载了 REST API 发送的数据,我的问题最重要的是,是否可以通过进入 DOM 的remove()或deleteRow(index)删除一行或我必须通过状态(useSta
尝试从表格 View 中删除单元格时如何解决此崩溃问题? 调试器显示该行上的错误:tableView.deleteRows(at: [selectedIndexPath], with: .automa
应用程序部分删除了文件,但也因错误消息而崩溃 声明部分 var FileContent = (try? FileManager.default.contentsOfDirectory(atPath :
我正在尝试删除一行但它不允许我,它说“'deleteRow' 不允许,因为 ResultSet 不是可更新的 ResultSet”。这是我的代码: public void addUserName()
我是一名优秀的程序员,十分优秀!