我最近继承了相对较小的iOS应用程序的维护。该应用程序由外部承包商创建,几乎没有指导和监督。不用说它需要“一点点”清洁 - 我正在评估是否要重做整个事情。
令我难过的一件事是应用程序崩溃,调试器显示“应用程序在应用程序启动结束时应该有一个根视图控制器”。在发生这种情况的模块中,我研究了所有UIViews以确保它们是用父创建的(addSubView设置了根视图控制器,对吧?) - 这看起来都很正常。
对于XCode而言,我不熟悉可以帮助我弄清楚可能会发生什么的设施。例如,如何快速查看/调查模块创建的所有UIView的状态?我怎样才能“观察”变量,以便在变化时发出警报?总的来说,是否有最佳策略可用于解决上述问题?
很抱歉保持有点模糊,但我不认为发布一堆丑陋的代码可以帮助您更好地理解问题: - )
答案 0 :(得分:1)
当应用程序的UIWindow在完成启动时没有rootViewController
属性的值时,会发生该特定问题。查看您的应用程序委托文件 - 通常,在那里的窗口上设置根视图控制器。
关于更一般的问题:有多种方法可以在程序运行时检查程序的状态。转储某些信息的一种非常基本的方法是使用NSLog
语句 - 您可以将消息打印到控制台,其方式与C printf
非常相似。您还可以在应用程序中设置断点并使用调试器检查不同的变量 - 有关详细信息,请查看lldb文档。
答案 1 :(得分:0)
你是否“悬挂”UIViews与没有根视图控制器没什么关系。
相反,您应确保应用程序UIWindow
在应用程序结束时rootViewController
委托appDidFinishLaunching
方法。