25得票3回答
内部闭包的捕获列表是否需要重新声明`self`为`weak`或`unowned`?

如果我将一个闭包传递给一个函数,像这样: someFunctionWithTrailingClosure { [weak self] in anotherFunctionWithTrailingClosure { [weak self] in self?.doSo...

10得票1回答
Swift弱引用比强引用慢很多

我正在使用Swift构建物理引擎。在对引擎进行一些最近的添加并运行基准测试后,我注意到性能显着变慢。例如,在下面的截图中,您可以看到FPS从60下降到3 FPS(FPS位于右下角)。最终,我将问题追溯到仅一个代码行: final class Shape { ... weak ...

9得票1回答
Swift中,unowned只能应用于类和基于类的协议类型。weak可以正常工作。

请仔细阅读问题,因为它似乎是许多类似问题的重复,但实际上并不是。大多数其他问题使用带有“let”关键字的闭包来捕获对象初始化之前的弱引用或无主引用self。但我不这样做。 我的代码: class Singleton : ObserverProtocol { static let ...