【问题标题】:viewWithTag return nil, on subsequent calls to cellForRowAtIndexPathviewWithTag 在随后调用 cellForRowAtIndexPath 时返回 nil
【发布时间】:2012-09-13 08:29:31
【问题描述】:

我有一个带有原型表格单元格的 UITableView,我有一个 UIImageView 一个 UILabel 和 2 个 Buttons 对象,它们从具有不同标签(即 100,200,300)的单元格上的 UIButton 继承,我使用 IB 创建了它。我使用 dequeueReusableCellWithIdentifier 来获取 cellForRowAtIndexPath 中的单元格,它总是返回一个单元格。

第一次 cellForRowAtIndex 路径运行 [cell viewWithTag:TAG] 为每个 UI 元素返回正确的对象,但是在第二次运行时(当我滚动一点时)所有对象都正确返回,除了两个为 nil 的 UIButton 对象. (在调试器中,它们的地址全为零)。

我不知道是什么原因造成的,因为我所有的其他表格视图都使用类似的代码。

更新:如果我为 cellForRow 中的按钮设置类型 ID,它们不是零,但是当我悬停时,对象显示为 (UIButton *)。但是,如果我在 [cell ViewWithTag:Button1Tag] 之后有任何代码将消息发送到 id 对象,则它变为 nil。很奇怪。

【问题讨论】:

    标签: iphone objective-c ios5 uitableview


    【解决方案1】:

    好的,我最终在 XCode 中使用 GDB(这很棒)使用 recursiveDescription 来查看 Cell 内部。它显示我的标签已经消失,然后我意识到我在 cellForRow 上设置标签来保存行,覆盖原来的 IB 集标签。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      • 2012-01-31
      相关资源
      最近更新 更多