我的 for
语句似乎返回的值超出了应有的值,并导致了错误。这是代码...
for (BookCustomCell *bcc in [self.tableView subviews])
{
if (bcc.rowIDTag == [bookID intValue])
{
//Do something here.
}
}
当我逐步执行此操作时,一切似乎都很好。它会执行 For 语句四次,每次 bcc.rowIDTag
都存在并具有值。然后它会进行第五次。 bcc.rowIDTag
不存在,因此崩溃 (SIGABRT)。
- 为什么会经历第五次?
- 从概念上讲,我缺少什么? (以我理解事物的方式,它发现所有 TableView subview 中的 BookCustomCells,然后迭代它们中的每一个。这是正确的吗?)
- 有更好的方法来实现我的目标吗? (我有一个包含多行的表格 View 。每行 行有多个按钮,位于自定义单元格中。当我单击一个按钮时,我需要对该行/单元格内的所有其他按钮进行操作。)
(这些编程知识对我来说都不容易,但我决心并决心学习它。感谢您的帮助。)
最佳答案
您的代码是错误的,UITableView
包含一些不是 UITableViewCell
的 subview ,这就是您遇到 SIGABRT 崩溃的原因。
for (BookCustomCell *bcc in [self.tableView visibleCells])
{
if (bcc.rowIDTag == [bookID intValue])
{
//Do something here.
}
}
这应该可以解决问题。
关于iphone - subview 上的 Foreach 语句似乎没有过滤掉需要过滤掉的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9130668/