【问题标题】:iPhone simulator is on the fritziPhone 模拟器很流行
【发布时间】:2012-02-03 01:12:23
【问题描述】:

我编写了一个保存用户输入文本的应用程序,它在 iPhone 和 iPad 模拟器上完美运行。我关闭了 Xcode,一个小时后重新打开它,在提交之前仔细检查它,然后遇到了一个奇怪的问题。该应用程序在 iPad 模拟器上仍然可以完美运行,但在 iPhone 模拟器上,它不会再保存数据了。此外,当我关闭应用程序,然后从多任务栏中重新打开它时,它会崩溃。一个小时前,它在两个模拟器上都运行良好,而我根本没有改变任何东西。我还恢复了之前拍摄的快照,当时我 100% 确信经过全面测试后它可以完美运行,但同样的问题仍然存在。

我认为我的 iPhone 模拟器很糟糕。如果它真的有问题,它会对 iPad 模拟器产生同样的影响,对吧?有没有其他人遇到过这个问题?我已经重置了我的电脑并删除了模拟器的内容和设置,但似乎没有用。

【问题讨论】:

  • 您可能需要仔细查看正在发生的事情并提供更多信息。同时,如果您还没有尝试退出模拟器,请运行 Clean 并运行您的应用程序,让 Xcode 重新启动模拟器。
  • 有什么问题?什么是崩溃?如果这是一个内存损坏问题,它可能有时会起作用,有时会不起作用,没有可识别的模式。
  • 这就是模拟器似乎提供的所有信息。我“停止”在 Xcode 中运行应用程序,然后单独在模拟器上运行它们,因为每次我用 iPhone 按下主页按钮时,都会在 Xcode 中出现错误。这是我的 main.m 文件中的通用“程序接收信号 SIGABRT”。不过,当我在 iPad 模拟器上点击主页按钮时,它根本没有这个错误。我已经退出了sim,清理并重新运行。感谢您的提示。
  • 你能看到它是否在应用程序委托中到达 applicationWillResignActive: 然后 applicationDidEnterBackground: 在它崩溃之前?在这些方法的入口处设置一个断点并告诉我们会发生什么。
  • SIGABRT 不是一般错误。这是一个特定的错误。您正在引发异常或断言。这就是为什么您在 Xcode 中遇到错误以及为什么它在未连接到 Xcode 时似乎崩溃的原因(因为它实际上是由于未处理的异常而崩溃)。有什么例外?

标签: iphone xcode ipad simulator


【解决方案1】:

UIApplication 委托方法只属于应用程序委托,它应该实现 UIApplicationDelegate 协议方法,as explained in the documentation

如果您希望其他类对象在 applicationWillResignActive 启动后执行某些操作,您可以在该方法中放置一些代码来实现这一点。 Here is a link to a suggestion on how to do that。为什么在其他类中有 applicationDidEnterBackground: 方法?这可能与您的问题有关,应该很容易解决。

【讨论】:

  • 非常感谢吉姆。我把所有东西都搬来搬去,试一试。感谢您的帮助。
  • 不客气。回来寻求更多帮助,你需要它。我要退出一段时间。
猜你喜欢
  • 2013-02-27
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 2010-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-03
相关资源
最近更新 更多