【问题标题】:Unexplained crashes iOS无法解释的崩溃 iOS
【发布时间】:2011-11-07 14:35:59
【问题描述】:

我目前正在使用 Cocos2D 为 iPhone/iPad 开发一款游戏。 在模拟器上它工作正常,可以运行几个小时,没有任何问题。 但是在设备上,它会运行一段时间,然后突然崩溃。调试控制台没有给出错误信息,输入“bt”只会返回“No stack”。并且它不会生成崩溃报告。 它通常在加载主菜单或新关卡时崩溃,但也可能在玩关卡时发生。

关于如何调试的任何想法?

【问题讨论】:

  • 听起来可能是内存泄漏。您是否使用“泄漏”工具检查了该应用程序?
  • 不是真正的解决方案,但您应该在设备上运行时使用 Instruments 检查应用程序行为(通过执行项目 -> 分析),查看是否有任何可疑的内存使用模式或其他提示对于虚假行为。
  • 99%是内存泄漏。
  • 内存泄漏,我的应用程序也有同样的问题,只需运行初步分析,了解泄漏情况,清理项目然后分析,在模拟器上它可以运行数小时没有问题,因为它基本上让你的计算机可运行内存可用。
  • 我已经用模拟器上的仪器对其进行了分析(每次加载菜单/关卡时它会泄漏大约 50kb)。随机崩溃仅发生在较旧的设备上。现在通过仪器在设备上运行。

标签: objective-c ios crash cocos2d-iphone


【解决方案1】:

你真的应该阅读 Objective-c 中的内存管理

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html

当我第一次切换到 Objective-c 编程时(来自 C#/Java 背景),我也遇到了很多问题。一旦我了解了 Objective-c 中的内存管理,我就很少遇到这类问题。我不使用弧线。

每当您分配和初始化一个对象时,保留计数为 1。您应该记住在某个时候释放这些对象。如果您使用其他方法,那么您将获得一个自动释放对象。那就是约定。

您将节省的时间真的很值得。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    相关资源
    最近更新 更多