问题标签 [strong-reference-cycle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
22663 浏览

swift - Swift 委托 - 何时在委托上使用弱指针

有人可以解释何时以及何时不使用 Swift 中的委托指针的“弱”赋值,为什么?

我的理解是,如果您使用未定义为类的协议,则您不能也不想将委托指针分配给弱。

但是,当您的协议被定义为类类型协议时,您是否希望将您的委托设置为弱指针?

我对么?在 Apple 的 swift guide 中,类协议示例没有使用弱分配,但在我的测试中,如果我的代表没有被弱引用,我会看到强引用循环。

0 投票
0 回答
497 浏览

swift - 我怎样才能找到所有的闭包?

在闭包中引用 self 时,我们完全忘记了捕获 self 及其属性。(注意:编译器没有警告我们。)现在我们的应用程序充满了强引用循环。要修复它们,我们必须将捕获列表逐个添加到每个闭包中。

我们怎样才能找到它们?我想搜索,in但它导致太多结果,包括评论,周期。

好的旧目标 C 将帮助我搜索^. 它会警告我们...

0 投票
1 回答
229 浏览

objective-c - 2个对象之间的Objective-C保留循环

这是代码:

我试图设置ta = niltb = nil。它没有用,但ta.b = nil有效。为什么?

0 投票
2 回答
720 浏览

ios - Swift,为什么类方法不需要闭包列表

如果函数本质上是闭包。为什么在闭包中引用 self 或另一个实例属性时,类的方法不需要闭包列表。

幕后有[无主的自我]吗?例如:

myFunc 中不会有引用循环吗?即闭包指向自身,实例指向函数。两者都不能被释放。

0 投票
1 回答
125 浏览

swift - 带有数组的 Swift 强引用循环

如果我有一个 A 类,它有一个变量 x,它是 B 类的一个数组,而 B 类总是有一个 A 类的变量 y 父级,我该如何设置以避免强引用循环。如果我输入,我会收到错误

(即使我做到了[B]?)而且似乎是错误的放置方式

因为 B 类应该总是有一个“父”类 A。

我想这是一个标准设置,所以想知道正常模式。非常感谢任何帮助。

0 投票
1 回答
30 浏览

swift - 在一个类中引用一个类的实例数组会创建一个强引用循环吗?

我有以下课程:

现在,在大多数情况下,bonus5Circles 数组将为空,但在某些情况下,它将包含 Circles 的一些子集。这似乎在代码中正常运行,但我的问题是这是否会创建一个强大的参考循环。我注意到创建奖金时无法在函数中追踪的泄漏,并且想知道是否可以将其追踪到该属性。

0 投票
0 回答
50 浏览

swift - Swift:弱引用函数作为闭包?

在 Swift 中,我目前面临的问题是,在将类的函数作为闭包参数传​​递时,我需要经常换行以防止强引用循环functionsclosures例如,在下面的场景中:

必须总是输入{ [weak self] in self?.myFunc() }并不好,因为它打开了人们忘记包裹myFunc在闭包中时意外引入内存泄漏的大门。是否有一种更简单/更简单的方法可以实现类似的行为?

- 编辑

如果没有更简单的方法,我可能会在@Apple 上打开一个功能请求,以获得类似于以下内容的语法:

a.foo = weak foo相当于_a.foo = { [weak self] in self?.foo() }

或者,在处理不属于 的函数时self

a.foo = weak b.foo相当于_a.foo = { [weak b] in b?.foo() }

注意:我并不是建议让闭包本身具有弱可引用性。我只是提议它weak b.foo的编译方式与{ [weak b] in b?.foo() }