标签: strong-reference-cycle

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

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

我的理解是,如果你使用一个未定义为类的协议,你不能也不想将你的委托指针指向weak.

protocol MyStructProtocol{
    //whatever
}

struct MyStruct {
    var delegate: MyStructProtocol?
}
Run Code Online (Sandbox Code Playgroud)

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

protocol MyClassProtocol:Class{
    //whatever
}

class MyClass {
    weak var delegate: MyClassProtocol?
}
Run Code Online (Sandbox Code Playgroud)

我对么?在Apple的快速指南中,类协议示例并未使用弱分配,但在我的测试中,如果我的代表没有被弱引用,我会看到强大的引用周期.

delegates memory-leaks memory-management swift strong-reference-cycle

42
推荐指数
3
解决办法
2万
查看次数

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

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

我们如何才能找到所有这些?我想搜索,in但结果太多,包括评论,循环。

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

closures swift capture-list strong-reference-cycle

5
推荐指数
0
解决办法
456
查看次数