2

我最近继承了一个相对较小的 iOS 应用程序的维护。该应用程序是由外部承包商创建的,几乎没有指导和监督。不用说它需要“一点”清洁——我正在评估是否重做整个事情。

让我难过的一件事是应用程序崩溃,调试器显示“应用程序在应用程序启动结束时应该有一个根视图控制器”。在发生这种情况的模块中,我研究了所有 UIView 以确保它们是使用父级创建的(addSubView 设置根视图控制器,对吗?) - 这看起来很简单和正确。

作为 XCode 的新手,我不熟悉可以帮助我弄清楚这里可能发生什么的设施。例如,如何快速查看/调查模块创建的所有 UIView 的状态?我怎样才能“观察”一个变量,以便在它发生变化时得到提醒?总的来说,有没有一种最佳策略可以用来解决我上面描述的问题?

抱歉有点含糊,但我不认为发布一堆丑陋的代码可以帮助您更好地理解问题:-)

4

2 回答 2

1

rootViewController当应用程序的 UIWindow在完成启动时其属性没有值时,就会发生该特定问题。查看您的应用程序委托文件 - 通常,根视图控制器设置在那里的窗口上。

关于您更一般的问题:有多种方法可以在程序运行时检查程序的状态。转储一些信息的一个非常基本的方法是使用NSLog语句 - 您可以像 C 一样将消息打印到控制台printf。您还可以在应用程序中设置断点并使用调试器检查不同的变量 - 查看 lldb 文档以获取更多信息。

于 2012-09-25T16:08:58.047 回答
0

你是否有“悬空”的 UIViews 与有没有根视图控制器没有太大关系。

相反,您应该确保您的应用程序在您的应用程序委托方法的末尾UIWindow有一个。rootViewControllerappDidFinishLaunching

于 2012-09-25T16:10:10.233 回答