启动图像和打开动画是不是会导致我的应用冻结?

Posted

技术标签:

【中文标题】启动图像和打开动画是不是会导致我的应用冻结?【英文标题】:Is the launch image and opening animation causing my app to freeze?启动图像和打开动画是否会导致我的应用冻结? 【发布时间】:2018-08-31 22:13:52 【问题描述】:

我是编程新手,我的任务是更新另一家公司开发的 ios 应用。该公司使用动画从启动图像过渡到主屏幕,在将代码更新到 Swift 4 并修复代码中的所有错误后,应用程序不会过渡到主视图。在注释掉我认为可能会影响它的代码后,并创建一个新的 Xcode 项目来测试 xib 文件是否有问题,我不知道出了什么问题。在模拟器中运行应用程序时,它会在 AppDelegate 文件中引发此错误。

线程 1:信号 SIGABRT

这就是运行时出现在控制台中的内容。

-[UITableView _configureCellForDisplay:forIndexPath:] 中的断言失败,/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3698.54.4/UITableView.m:9453 2018-08-30 14:12:04.456072-0600 珍品柜[5400:502120] 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“UITableView (; 层 = ; contentOffset: 0, -20;内容大小:768, 1286; adjustedContentInset: 20, 0, 0, 0>) 未能从其数据源获取单元格 ()'

我一直在寻找一个星期来试图解决这个问题。虽然我在 AppDelegate 文件中收到错误,但我认为问题可能出在 mainViewController 文件中。

【问题讨论】:

控制台中应该有一些与异常相关的文本;请将其添加到您的问题中。您还可以设置异常断点,但您尝试在表格视图中显示的单元格似乎存在问题 另请注意 - 您不能在启动屏幕中编码任何内容。这是一个图像,一个故事板,等等。您无权访问底层视图控制器(如果有的话)。所以问题出在其他地方。 @dfd 我明白这一点。我认为问题可能出在播放打开动画的代码上,这使得启动图像看起来过渡到了主视图。 【参考方案1】:

实际上您提供的日志的最后一行提到:

failed to obtain a cell from its dataSource (<Cabinet_of_Curiosities.CollectionViewController: 0x7f9c4540c5e0>)'

这对我来说更像是一个UITableViewDataSource 问题:Cabinet_of_Curiosities .CollectionViewController 中的tableView:cellForRowAtIndexPath: 可能由于某种原因返回了一个 nil 单元格。

您可以通过在该方法中的return 行中放置一个断点来确认这一点。

更多详情可以通过TwoStraws查看这个答案

【讨论】:

以上是关于启动图像和打开动画是不是会导致我的应用冻结?的主要内容,如果未能解决你的问题,请参考以下文章

iOS应用轮换导致冻结[关闭]

ios 9,白色启动画面而不是启动图像,以前工作正常,似乎没有任何改变导致它

在 macOS/Cocoa 应用程序中启动 GCDWebServer 会冻结应用程序

使用 Appium 自动化 iOS 8 应用程序会导致应用程序冻结

iOS应用程序启动图像后杀死

TestFlight 应用程序在启动时冻结 [关闭]