iphone - subview 上的 Foreach 语句似乎没有过滤掉需要过滤掉的内容

标签 iphone objective-c for-loop

我的 for 语句似乎返回的值超出了应有的值,并导致了错误。这是代码...

for (BookCustomCell *bcc in [self.tableView subviews])
{
    if (bcc.rowIDTag == [bookID intValue])
    {
        //Do something here.
    }
}

当我逐步执行此操作时,一切似乎都很好。它会执行 For 语句四次,每次 bcc.rowIDTag 都存在并具有值。然后它会进行第五次。 bcc.rowIDTag 不存在,因此崩溃 (SIGABRT)。

  1. 为什么会经历第五次?
  2. 从概念上讲,我缺少什么? (以我理解事物的方式,它发现所有 TableView subview 中的 BookCustomCells,然后迭代它们中的每一个。这是正确的吗?)
  3. 有更好的方法来实现我的目标吗? (我有一个包含多行的表格 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/

相关文章:

php - 从MySql数据库取回数据并显示在 "UITextview"上

ios - #<UIButton :0xa7f1390> 的未定义方法 `selected'

iphone - 在另一个数组的基础上对数组进行排序

objective-c - UIPicker [__NSCFConstantString _isResizable]错误:?

c++ - 找到所有的最大总和,它包含数字和

javascript - 如何使用 JavaScript for 循环在每一行显示一个新的随机数?

iphone - UIButtons 位于 UIView 下方,造成干扰

objective-c - 两个 UIViewController 的故事

objective-c - 预处理器-IF 不起作用

python - 为什么这个 for 循环给我一个不正确的输出?