如何消除导致此问题的错误线程1:EXC_BAD_ACCESS错误?
我对Swift相当陌生(我在一个月前了解它),并且正在创建一个自定义集合视图单元格,并将自定义类连接到View Controller类。我在问这个问题,因为我一直在努力寻找一个bug如何消除导致此问题的错误线程1:EXC_BAD_ACCESS错误?
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
let answer = collectionView.numberOfItems(inSection: cellArray.count)
return answer
}
出了几个小时。这个bug是我View Controller类中的一个方法,它在LLDB窗口中显示一条错误消息“线程1:EXC_BAD_ACCESS(代码= 2 ... [计算机内存地址here]”在let answer = collectionView.numberOfItems(inSection: cellArray.count)
处突出显示,我有followed this tutorial,错误不消灭
我已经包括了我的视图控制器类的一部分,我初始化属性,如果是有帮助的。
@IBOutlet weak var ibCollectionView: UICollectionView!
var cellArray:[customCollectionViewCell] = Array(repeatElement(customCollectionViewCell(), count: 6))
let displayedCellDimensions = CGSize(width: 343, height: 248)
任何帮助表示赞赏,因为我很困难谢谢你!
,在跳出我的第一件事情是,你递归调用您的numberOfItemsInSection:
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
let answer = collectionView.numberOfItems(inSection: cellArray.count)
return answer
相反,你应该只给它想要的东西,项目数:
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return cellArray.count
当您重命名或删除并重新添加Swift文件中的InterfaceBuilder插口而不修改故事板插口时,会发生处理collectionViews和tableViews的另一个问题。我已经包含了屏幕截图,所以你能明白我的意思:
如果那些充满界的一个是空的,连接中断。要解决此问题,请执行以下操作:
- 打开故事板并选择heirarchy中的集合视图。
- CTRL +在助手编辑器中从梯级拖动到swift文件(用热键Alt + CMD + Enter打开)
- 应该出现一个对话框。输入插座的设置。
- 清理swift文件和连接编辑器中的旧插座和断开的连接。
谢谢!我做了这些事情,现在当我去iOS模拟器中运行应用程序时,该应用程序只是冻结; LLDB不显示任何内容;我必须停止Xcode中的模拟。你知道这是为什么吗? – ProgrammingEnthusiast
谢谢!我看到那个教程,但我被告知,对于这部分应用程序,我不需要UICollectionViewController。 [这是我的代码的其余部分的链接,因为它是目前。](https://*.com/questions/45463354/why-wont-my-collection-view-cells-display-in-the -iPhone模拟器)。我在'return cellArray.count'处插入了一个断点,现在它有一个绿色的消息“Thread 1:breakpoint 1.1”当它没有断点运行时,AppDelegate.swift有一个线程1:signal SIGABRT错误,但我仍然不确定这里要做什么。 – ProgrammingEnthusiast
我一直在玩代码,它仍然抛出线程1:信号SIGABRT错误。 [这是我的代码](https://gist.github.com/ProgrammingExterminator/aebfb74a405200970297002c33d910c1)。在这一点上我很迷茫。 – ProgrammingEnthusiast
灭掉一个bug是农药!......现在,严重的是,你检查了的CollectionView不是零和cellArray不为零的最好? – Gusman
@Gusman我很确定。我已经编辑了这篇文章,其中包括LLDB界面的屏幕截图,其中显示了collectionView的内存位置 – ProgrammingEnthusiast
希望没有人责怪我指向你的外部资源...试试这个方法来调试异常,它会给你更多的信息:https://code.tutsplus.com/tutorials/what-is-exc_bad_access-and-how-to-debug-it--cms-24544 – Gusman