我应该在PromiseKit块中使用[弱自我]吗?

感性的

PromiseKit在其网站上声明以下内容

我应该担心保留周期吗?

tl; dr:在promise处理程序中使用self是安全的。

这是安全的:

somePromise.then {
    self.doSomething()
}

提供somePromise解析后,then将释放传递给的函数,因此[weak self]无需指定

指定[无主的自我]可能很危险。

您是在告诉我不要担心保留周期吗?!

不,只是默认情况下,使用PromiseKit时不会引起保留周期。但是还是有可能...

这是否意味着我不应该[weak self]在PromiseKit块中使用有没有我仍然需要使用的情况[weak self]它到底如何防止保留周期?

该文档只是在说您不必担心PromiseKit会引入“强参考周期”(以前称为“保留周期”),因为当实现诺言并且块完成运行时,这些强参考会自动为您解决。选择强引用还是弱引用完全取决于您。

例如,如果您只是在场景中不再存在的UI元素上进行更新,则无需强烈引用已关闭的视图控制器。您将weak在这种情况下使用但是有时您需要强大的参考(例如,您可能希望更新基础模型以反映承诺的成功或失败)。

最重要的是,他们所说的是,您不应该让PromiseKit指示强引用还是弱引用,而应该由应用程序更广泛的设计要求来驱动。关于PromiseKit的唯一硬性规定是您应该避免unowned

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我应该在计算属性的闭包内使用弱自我吗?

来自分类Dev

我应该在嵌套块中使用weakSelf吗?

来自分类Dev

我应该在调度块中使用“ weakSelf”吗?

来自分类Dev

Objective-C:我们应该在块内使用弱自我还是在使用强自我之前将弱自我分配给强自我?

来自分类Dev

我应该在断言中使用try-catch块吗

来自分类常见问题

何时在快速块中使用[自我]与[弱自我]?

来自分类Dev

何时在快速块中使用[自我]与[弱自我]?

来自分类Dev

我应该在GraphQL中使用列表(数组)吗?

来自分类Dev

我应该在for in结构中使用var吗?

来自分类Dev

我应该在main(){}中使用#include语句吗?

来自分类Dev

我应该在Wordpress中使用Options -Indexes吗?

来自分类Dev

我应该在Java中使用Clone方法吗?

来自分类Dev

我应该在Spark SQL中使用registerDataFrameAsTable吗?

来自分类Dev

我应该在Swift中使用Cocoa绑定吗?

来自分类Dev

我应该在BehaviorSubject中使用asObservable吗?

来自分类Dev

我应该在TDD中使用lambda吗?

来自分类Dev

我应该在main(){}中使用#include语句吗?

来自分类Dev

我应该在 Kotlin 的界面中使用属性吗?

来自分类Dev

我应该在服务工作者中使用自我还是这个?

来自分类Dev

我应该在我的php项目中使用`DateTimeInterface`吗?

来自分类Dev

我应该在我的药剂代码中使用Mix.Utils吗?

来自分类Dev

我应该在我的iOS Push Notification App中使用核心数据吗?

来自分类Dev

non-ARC:我应该在[自我发布]之前致电[super init]吗?

来自分类Dev

将nginx与expressJS结合使用时,我应该在express或nginx中使用压缩吗?

来自分类Dev

我应该在Django中使用通用外键吗?如何使用?

来自分类Dev

我应该在使用throw时使用throw吗?

来自分类Dev

我应该在新应用程序中使用Postgres的bigserial记录吗?

来自分类Dev

我应该在Swift iOS应用中使用UIImage还是CGImage吗?

来自分类Dev

我应该在(Docker)容器中使用forever / pm2吗?

Related 相关文章

  1. 1

    我应该在计算属性的闭包内使用弱自我吗?

  2. 2

    我应该在嵌套块中使用weakSelf吗?

  3. 3

    我应该在调度块中使用“ weakSelf”吗?

  4. 4

    Objective-C:我们应该在块内使用弱自我还是在使用强自我之前将弱自我分配给强自我?

  5. 5

    我应该在断言中使用try-catch块吗

  6. 6

    何时在快速块中使用[自我]与[弱自我]?

  7. 7

    何时在快速块中使用[自我]与[弱自我]?

  8. 8

    我应该在GraphQL中使用列表(数组)吗?

  9. 9

    我应该在for in结构中使用var吗?

  10. 10

    我应该在main(){}中使用#include语句吗?

  11. 11

    我应该在Wordpress中使用Options -Indexes吗?

  12. 12

    我应该在Java中使用Clone方法吗?

  13. 13

    我应该在Spark SQL中使用registerDataFrameAsTable吗?

  14. 14

    我应该在Swift中使用Cocoa绑定吗?

  15. 15

    我应该在BehaviorSubject中使用asObservable吗?

  16. 16

    我应该在TDD中使用lambda吗?

  17. 17

    我应该在main(){}中使用#include语句吗?

  18. 18

    我应该在 Kotlin 的界面中使用属性吗?

  19. 19

    我应该在服务工作者中使用自我还是这个?

  20. 20

    我应该在我的php项目中使用`DateTimeInterface`吗?

  21. 21

    我应该在我的药剂代码中使用Mix.Utils吗?

  22. 22

    我应该在我的iOS Push Notification App中使用核心数据吗?

  23. 23

    non-ARC:我应该在[自我发布]之前致电[super init]吗?

  24. 24

    将nginx与expressJS结合使用时,我应该在express或nginx中使用压缩吗?

  25. 25

    我应该在Django中使用通用外键吗?如何使用?

  26. 26

    我应该在使用throw时使用throw吗?

  27. 27

    我应该在新应用程序中使用Postgres的bigserial记录吗?

  28. 28

    我应该在Swift iOS应用中使用UIImage还是CGImage吗?

  29. 29

    我应该在(Docker)容器中使用forever / pm2吗?

热门标签

归档