加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – 知道保留周期的位置并将其删除

发布时间:2020-12-14 05:42:48 所属栏目:百科 来源:网络整理
导读:我想知道是否有一种简单的方法(或至少是一种方法)来找出程序中存在保留周期的位置.此外,如果我知道这些保留周期存在的位置,取决于它们的类型(例如变量或闭包),我该如何使它们变弱.我需要使用self(我的GameScene)停止所有保留周期,以便在我不再需要它时解除分
我想知道是否有一种简单的方法(或至少是一种方法)来找出程序中存在保留周期的位置.此外,如果我知道这些保留周期存在的位置,取决于它们的类型(例如变量或闭包),我该如何使它们变弱.我需要使用self(我的GameScene)停止所有保留周期,以便在我不再需要它时解除分配并且我想重新启动它.

任何提示,建议,答案和反馈将不胜感激(并提供特定的代码和示例将是首选).谢谢.

编辑:@ Sweeper的回答正是我想要的.如果你遇到同样的问题,他的回答会有所帮助.谢谢@Sweeper!

如果您使用的是Xcode 8或更高版本,则可以使用内存图来查看哪个对象包含对哪个对象的引用.

要查看内存图,请先使用Xcode构建并运行您的应用程序.如果要检查是否已正确丢弃所有创建的实例,请转到左窗格中的此选项卡:

然后按右边的按钮:

之后,选择最底部的选项 – 查看内存图层次结构:

现在它将显示内存中的所有对象:

在我的例子中,我有一个GameSystem对象,6个ButtonNode对象和一些其他对象.你会注意到有一点!在GameSystem对象旁边.这意味着这个对象泄露了.此外,GameScene不应再在内存中,因为当前场景是TitleScene.让我们看看通过点击实例保留它的内容:

现在你可以清楚地看到它是由一个闭包保留的!

这就是你如何使用内存图来查看应该放置弱引用的位置并避免保留周期.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读