iOS App 在 segue 崩溃(断点发生在 func prepareForSegue)

Posted

技术标签:

【中文标题】iOS App 在 segue 崩溃(断点发生在 func prepareForSegue)【英文标题】:iOS App crashes at segue (breakpoint occurs at func prepareForSegue) 【发布时间】:2016-06-23 03:57:45 【问题描述】:

更新:我发现,仅通过阅读代码很难进行调试,尤其是在这种情况下,https://www.dropbox.com/s/ty3clsvgednzevj/LoaferMap%20for%20iPhone%20copy%202.zip?dl=0,所以如果您想重现该错误,我会将我的项目上传到 Dropbox。 我删除了destination.delete(self),现在它消失了。但应用程序仍然崩溃。我意识到 SliderViewController 中的问题,也许我写的代码根本无法执行。我是初学者,不熟悉 Swift 编程语言。您的帮助对我来说意义重大。

如果你下载我的项目,看看它。我的目标其实很简单,你使用一个滑块来选择一个旅行半径,并且有很长的代码行会根据我当前的位置生成一个随机位置。最后将该代码传递给destinationViewController,以根据新生成的位置显示一个飞越动画。但现在我认为一切都设置正确,但应用程序仍然崩溃。

当我即将从一个视图转换到下一个视图时,我的应用程序崩溃了。

     override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
         if (segue.identifier == "sendLocationdata") 
             let destination = segue.destinationViewController as! DestinationViewController

线程 1,断点 1.1

   destination.latitude = latitude
   destination.longitude = longitude
          

更多源代码在VC中,下一个VC,可以查看我问的另一个问题How to Pass Data from View Controllers?。

【问题讨论】:

destination.delete(self) 调用的目的是什么? 很难从您发布的内容中看出。你能在if (segue.identifier == "sendLocationdata") 添加一个断点然后运行po segue.identifier 以确保你得到正确的segue 另外,正如Sam 所说,destination.delete(self) 看起来很可怕 请在这个问题中提供完整的代码sn-p,而不是给出另一个问题的链接。此外,如果您在崩溃发生时获得登录控制台,也请发布。正如其他人所说,我也怀疑 destination.delete(self) 是罪魁祸首。 【参考方案1】:
segue.destinationViewController

不是destinationViewController 这个类是一个 UINavigationController

你必须为 UINavigationController 的 rootViewController 设置纬度和经度

请像这样编辑

【讨论】:

以上是关于iOS App 在 segue 崩溃(断点发生在 func prepareForSegue)的主要内容,如果未能解决你的问题,请参考以下文章

iOS 添加本地通知时 App 发生崩溃提示 4097 UserNotificationService 错误的解决

iOS 添加本地通知时 App 发生崩溃提示 4097 UserNotificationService 错误的解决

Crashlytics iOS - 第 0 行崩溃 - Swift 来源

iOS 9 push segue 导致我的应用程序崩溃

转换为使用 iOS 8 Popover Segues 时 UISplitViewController 崩溃

应用程序崩溃整个设备在Segue上为iOS 9 + Xcode 7