【问题标题】:What could cause an iOS App to quit unexpectedly?什么可能导致 iOS 应用程序意外退出?
【发布时间】:2012-11-21 04:23:30
【问题描述】:

我正在开发一个 iOS 应用并测试它的稳定性。当我使用 XCode Analyze 检查它时,没有内存泄漏问题。我在我的 iPhone 5 和 iPad 2 上进行了模拟,并尝试尽可能快地单击按钮并连续翻转UIScrollView

调试日志确实多次显示“收​​到内存警告”消息,但仍然没有关于内存泄漏的消息。我一直在做疯狂的测试,应用程序意外退出。当我双击“主页”按钮时,我仍然可以找到在后台运行的应用程序。我点回app后,还是可以正常运行的。

因此,在这里我想知道哪些可能的原因会导致应用程序意外退出。我如何使用任何工具或策略来追踪应用退出的原因?

PS:我是一个新的 iOS 开发者,我真的对这个问题没有任何想法。我需要帮助。谢谢!

【问题讨论】:

  • 你用 Instruments 测试过吗?这就是 Apple 提供的调试工具。

标签: ios memory-management crash


【解决方案1】:

很多原因会导致 iOS 应用突然退出。例如,您更新了您的 iPhone 固件,但该应用程序仍然是旧版本,那么它们将不兼容。 或者您同时打开了太多应用程序,这些应用程序彼此分心。 另一个常见的情况是你的 iPhone 越狱,并在你的 iPhone 上安装了未经授权的应用程序。 在此处查看更多信息:http://iphone-6-data-recovery.blogspot.tw/2014/09/troubleshooting-iphone-app-quit-suddenly.html

【讨论】:

    【解决方案2】:

    泄漏内存之间存在差异 - 这是您分配的内存,您无法归还给系统,因为您丢失了指向内存的指针并且您无法释放它。然后内存使用不佳 - 这是您分配内存的地方。它不是“泄露”的,因为你可以把它还给它,但你不能把它还给它。

    考虑创建 100 个图像的示例。

    如果您创建 100 个图像视图,即使它们并非全部可见,但您保留对图像视图的引用,那么您就没有泄漏,但您没有正确管理内存。

    静态分析器可帮助您发现泄漏 - 它不会告诉您内存使用不当的地方。

    尝试使用分配工具在 Instruments 下运行您的应用,以查看所有内存的创建和使用位置。

    【讨论】:

    • 谢谢。我将尝试使用分配工具跟踪的 Instruments。顺便说一句,对于您的 100 个图像视图案例,正确的内存分配是多少?
    • 在这种情况下,正确的方法是在不再显示时释放 imageview。
    • 谢谢你,阿比伦。在将 UIImageView 对象添加到当前视图(如果使用 ARC)之后,将 UIImageView 的对象设置为 nil 是否正确?我想知道内存是否可以完全下降到以前的内存大小。例如,初始化、对象创建和对象销毁的内存使用量是 1mb、1.5mb 和 1mb 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    相关资源
    最近更新 更多