【问题标题】:Application runs one time but crashes the second time应用程序运行一次但第二次崩溃
【发布时间】:2011-02-17 13:11:49
【问题描述】:

大家好,你们好吗? 伙计们,我正在开发一个应用程序,它真的让我很生气,该应用程序部署在设备中,并且在我第一次使用它时运行良好,但是当我停止在设备中执行应用程序然后尝试运行它时下次然后触摸屏挂断,我留下黑屏,然后我再次重新安装我的应用程序。

在 viewDidLoad 中,我使用 MKMapView 的实例并显示用户当前位置,仅此而已

请帮帮我

【问题讨论】:

  • 哇。 得到水晶球
  • 加载一些代码可能会有所帮助...我建议在应用程序启动时运行代码,这样人们实际上可以提供帮助。
  • 您的应用程序中存在错误。如果你修复它,那么它将重新开始正常工作。
  • 哈哈@乔。在您删除“通过单击 plist 中的复选框来隐藏错误”部分后,我会赞成它。不要个人认为。禁用人们期望工作的功能不是一个好的举措。并且需要快速的应用程序切换。除非有充分的理由启用暂停退出,否则它只是一个糟糕的“解决方案”
  • 如果你认为你的答案是好的,你应该对 SO 有足够的信心,赞成票将超过反对票。如果不是……

标签: iphone objective-c xcode ios4


【解决方案1】:

您的问题可能在于未正确释放您的地图委托。我假设由于您在 viewDidLoad 中创建了 MKMapView,因此您在 viewDidUnload 中释放它,这很可能在您快速切换应用程序时被调用。如果您为创建的 MKMapView 设置了委托,则必须在发布 MKMapView 之前设置地图视图的委托 = nil。

【讨论】:

    【解决方案2】:

    好的,由于您的应用在启动时崩溃,这可能是您的 viewDidLoad 中的某些内容。如果没有代码本身,我无法真正了解更多细节,但是您的应用程序有任何保存/加载代码吗?这可以解释为什么它第一次工作但之后崩溃。

    【讨论】:

    • 在 viewDidLoad 中,我使用 MKMapView 的实例并显示用户当前位置,仅此而已
    【解决方案3】:

    好的 Radix,让我们以@Nichola1024 的回答为基础。首先完全注释掉整个 -viewDidLoad 方法。这能解决问题吗?

    如果是这样,那么这意味着它在您的 -viewDidLoad 方法中。因此,接下来取消注释整个方法,但注释掉所有与 MKMapView 相关的代码,看看它是否仍然崩溃。

    如果它没有崩溃,那么您就知道错误出现在注释掉的代码中。只需不断注释掉代码中越来越小的部分,您就会到达那里。

    在没有看到您实际的 -viewDidLoad 方法的情况下,这是我们可能能够为您提供的最好的方法。

    【讨论】:

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