ios – Storyboard会导致内存泄漏

ios – Storyboard会导致内存泄漏,第1张

概述我有两个UIViewControllers,按钮互相触发segue(模态).我想发现这是否会在来回跳跃时造成任何内存泄漏,我看到Living Object&&分配的内存正在上升,最终将导致应用程序崩溃.我没有任何单行代码 – 使用纯UIViewControllers. 我可能做错了什么?我可以在项目设置中设置错误吗?我是否正在严格阅读探查者的统计数据?使用segues时是否需要制作任何特殊的发布命 我有两个UIVIEwControllers,按钮互相触发segue(模态).我想发现这是否会在来回跳跃时造成任何内存泄漏,我看到living Object&&分配的内存正在上升,最终将导致应用程序崩溃.我没有任何单行代码 – 使用纯UIVIEwControllers.

我可能做错了什么?我可以在项目设置中设置错误吗?我是否正在严格阅读探查者的统计数据?使用segues时是否需要制作任何特殊的发布命令?

解决方法 您没有正确使用模态segues.实现它的方式是,当您进行segue而不是返回到来自的实例时,您将创建每个视图控制器的新实例.这就是为什么你的内存使用量继续增加.

在iOS 6之前,处理此问题的正确方法是:

1)在视图控制器1中定义诸如vIEwController2Done的方法
2)在视图控制器2中,创建一个名为delegate的属性ID.
3)在preparetoSegue视图控制器1中,将视图控制器2中的委托设置为self
4)在视图控制器2中,当是时候返回到视图控制器1时,调用[delegate vIEwController2Done]
5)在vIEwController2Done中调用[self dismissModalVIEwControllerAnimated:YES]

此方法仍适用于iOS 6,但也有一个新的展开segue可以替代使用.要使用它,您可以在视图控制器1中定义一个方法,如下所示:

Objective-C的:

- (IBAction)unwindFromVIEwController2:(UIStoryboardSegue *)segue{    NSLog(@"and we are back");}

迅速:

@IBAction func unwindFromVIEwController2(_ segue: UIStoryboardSegue) {    print("and we are back")}

然后,您可以控制从视图控制器2中的按钮拖动到故事板中视图控制器上方栏中的橙色退出图标.在d出窗口中,你选择unwindFromVIEwController2,瞧,你已经完成了.

总结

以上是内存溢出为你收集整理的ios – Storyboard会导致内存泄漏全部内容,希望文章能够帮你解决ios – Storyboard会导致内存泄漏所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1108327.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存