问题标签 [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.
swift - Swift 委托 - 何时在委托上使用弱指针
有人可以解释何时以及何时不使用 Swift 中的委托指针的“弱”赋值,为什么?
我的理解是,如果您使用未定义为类的协议,则您不能也不想将委托指针分配给弱。
但是,当您的协议被定义为类类型协议时,您是否希望将您的委托设置为弱指针?
我对么?在 Apple 的 swift guide 中,类协议示例没有使用弱分配,但在我的测试中,如果我的代表没有被弱引用,我会看到强引用循环。
swift - 我怎样才能找到所有的闭包?
在闭包中引用 self 时,我们完全忘记了捕获 self 及其属性。(注意:编译器没有警告我们。)现在我们的应用程序充满了强引用循环。要修复它们,我们必须将捕获列表逐个添加到每个闭包中。
我们怎样才能找到它们?我想搜索,in
但它导致太多结果,包括评论,周期。
好的旧目标 C 将帮助我搜索^
. 它会警告我们...
objective-c - 2个对象之间的Objective-C保留循环
这是代码:
我试图设置ta = nil
或tb = nil
。它没有用,但ta.b = nil
有效。为什么?
ios - Swift,为什么类方法不需要闭包列表
如果函数本质上是闭包。为什么在闭包中引用 self 或另一个实例属性时,类的方法不需要闭包列表。
幕后有[无主的自我]吗?例如:
myFunc 中不会有引用循环吗?即闭包指向自身,实例指向函数。两者都不能被释放。
swift - 带有数组的 Swift 强引用循环
如果我有一个 A 类,它有一个变量 x,它是 B 类的一个数组,而 B 类总是有一个 A 类的变量 y 父级,我该如何设置以避免强引用循环。如果我输入,我会收到错误
(即使我做到了[B]?)而且似乎是错误的放置方式
因为 B 类应该总是有一个“父”类 A。
我想这是一个标准设置,所以想知道正常模式。非常感谢任何帮助。
swift - 在一个类中引用一个类的实例数组会创建一个强引用循环吗?
我有以下课程:
现在,在大多数情况下,bonus5Circles 数组将为空,但在某些情况下,它将包含 Circles 的一些子集。这似乎在代码中正常运行,但我的问题是这是否会创建一个强大的参考循环。我注意到创建奖金时无法在函数中追踪的泄漏,并且想知道是否可以将其追踪到该属性。
swift - Swift:弱引用函数作为闭包?
在 Swift 中,我目前面临的问题是,在将类的函数作为闭包参数传递时,我需要经常换行以防止强引用循环functions
。closures
例如,在下面的场景中:
必须总是输入{ [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() }