ios - 使用 'dangling UIViews' 调试 iOS 应用程序的好策略是什么?

标签 ios cocoa-touch uiview uiviewcontroller

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

让我难过的一件事是应用程序崩溃,调试器显示“应用程序应在应用程序启动结束时具有 Root View Controller ”。在发生这种情况的模块中,我研究了所有 UIView 以确保它们是使用父 View 创建的(addSubView 设置 Root View Controller ,对吧?)——这看起来很原始和正确。

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

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

最佳答案

当应用程序的 UIWindow 在完成启动时其 rootViewController 属性没有值时,就会出现该特定问题。查看您的应用程序委托(delegate)文件 - 通常, Root View Controller 设置在该窗口上。

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

关于ios - 使用 'dangling UIViews' 调试 iOS 应用程序的好策略是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12586864/

相关文章:

ios - InterfaceBuilder 中带有多行 titleLabel 的 UIButton

iphone - 如何获取当前激活的 UITextField/UITextView 和 resignFirstResponder?

ios - 当我将一个类从 iOS 7 导入到 iOS 8 时出错

ios - 自定义 UIView 过渡

ios - 用西类牙语制作和分发 iOS 应用程序

iphone - 存档应用程序时,Xcode 认为我的 Icon@2x.png 适用于 iPad 而不是 iPhone 4

ios - 自定义 UIViewController 中的内存管理

ios - 更新歌曲时间标签

ios - 如何下载音频文件?

ios - 将手势传递给 View 在 z 轴上的排列