【发布时间】:2014-11-11 15:16:05
【问题描述】:
我的应用出现问题,找不到解决方案。
我有一个带有自定义单元格的 UICollectionView。我的单元格内部有一个 UITextField。
当文本字段处于编辑模式(键盘处于活动状态)时,如果我重新加载 collectionView,我会遇到 EXC_BAD_ACCESS 错误。发生此错误是因为调用了 UITextField 的方法 resignFirstResponder。 问题是collectionView中可能不再存在该单元格,因为它已被释放。
这是我的错误堆栈:
知道如何避免这个问题吗?
提前致谢
【问题讨论】:
-
您的自定义单元解构器是否正确处理所有观察者?
-
你能更好地解释你的问题@cdstamper,我只在“textFieldShouldReturn”中添加resignFirstResponder
-
你能告诉我踪迹吗?听起来你的 dealloc 没有做它应该做的事情。也许您的 UITextField 委托在某个时候不复存在 - 在这种情况下,您应该在对象消失时将其设置为 nil。
-
我刚刚更新了我的问题。我应该在哪里将对象设置为零?在自定义单元格的死锁中?文本字段的委托在自定义单元格范围之外,在模型中为单元格提供数据
-
通常您会在您的 dealloc 方法中执行此操作(通常称为解构函数)。由于 textField 归您的自定义单元格所有,但委托在您的单元格范围之外...尝试在您的单元格的 dealloc 中设置 delegate=nil。
标签: ios uitextfield uicollectionview exc-bad-access uicollectionreusableview