如何正确地将弱引用传递给函数的调用者?

胖子

说你有...

class Boss {
   func callback() { }
}

你有类似...

class Worker {
   static func compute(forMe: Boss) {
      .. do some work that takes 10 seconds .. 
      forMe?.callback()
   }
}

因此:在的特定情况下Boss,假设b您呼叫类似...

 Worker.compute(forMe: self)

说10秒过去。说在7秒钟,b不存在(嗯,我希望它不存在)。在10秒结束时,我compute想说:“哦,该死,似乎forMe不再存在。我不会进行回调,而放弃。”

因此,“计算”内部的“ forMe”应该很弱。(我猜?)

真的,您如何在Swift中实现这个基本概念?

如果您的compute函数正在异步执行工作并获取回调,那么它可以在该工作的闭包中弱地捕获您的参数:

static func compute(forMe: Boss) {
    doSomethingAsync { [weak forMe] in
        // forMe will be nil in here if it was deallocated before this is called
        forMe?.callback()
    }
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何正确地将参数传递给函数?[批]

来自分类Dev

如何正确地将“this”传递给函数?

来自分类Dev

如何正确地引用作为地址传递给函数的char **指针?

来自分类Dev

如何将异常传递给调用者

来自分类Dev

如何正确地将Win32类对象传递给函数

来自分类Dev

如何在提供类调用者级别的错误报告的同时正确地调用类

来自分类Dev

为什么这不起作用?如何将调用者对象传递给函数?

来自分类Dev

如何正确地将值传递给Flutter中任何窗口小部件的事件处理函数?

来自分类Dev

如何正确地将Unicode传递给Perl的DBI层?

来自分类Dev

如何正确地将完整文件名传递给`cmd / c`?

来自分类Dev

您如何正确地将字节对象传递给Python中的新线程?

来自分类Dev

如何正确地将数据传递给<input list>属性?

来自分类Dev

如何正确地将args数组传递给Java中的方法?

来自分类Dev

在React中,如何正确地将输入值从子级传递给父级

来自分类Dev

如何从SwiftUI LazyVGrid正确地将“单元项”传递给.sheet?

来自分类Dev

如何将点击处理程序从父母正确地传递给孩子?

来自分类Dev

如何正确地将文件夹名称传递给Shell脚本?

来自分类Dev

如何正确地将参数传递给fixedthreadpool,并控制线程执行?

来自分类Dev

如何在Rails中正确地将参数传递给特定操作

来自分类Dev

如何正确地将值传递给Google Maps URL方案回调?

来自分类Dev

QML:如何从 C++ 代码正确地将属性传递给 PluginParameter 值?

来自分类Dev

'this'对Lua中函数调用者的引用

来自分类Dev

如何正确地将成员函数作为参数传递

来自分类Dev

未传递功能参数。如何正确地将参数传递给另一个JavaScript文件的功能?

来自分类Dev

如何正确地将“选择”选项与API调用绑定?

来自分类Dev

如何正确地将表单数据传递给CodeIgniter中的数据库功能

来自分类Dev

如何正确地将texture2d_array <float>传递给片段着色器?

来自分类Dev

您如何正确地将视图中的post变量传递给CodeIgniter中的控制器?

来自分类Dev

如果copy_to_user()失败,将返回值传递给setsockopts()调用者吗?

Related 相关文章

  1. 1

    如何正确地将参数传递给函数?[批]

  2. 2

    如何正确地将“this”传递给函数?

  3. 3

    如何正确地引用作为地址传递给函数的char **指针?

  4. 4

    如何将异常传递给调用者

  5. 5

    如何正确地将Win32类对象传递给函数

  6. 6

    如何在提供类调用者级别的错误报告的同时正确地调用类

  7. 7

    为什么这不起作用?如何将调用者对象传递给函数?

  8. 8

    如何正确地将值传递给Flutter中任何窗口小部件的事件处理函数?

  9. 9

    如何正确地将Unicode传递给Perl的DBI层?

  10. 10

    如何正确地将完整文件名传递给`cmd / c`?

  11. 11

    您如何正确地将字节对象传递给Python中的新线程?

  12. 12

    如何正确地将数据传递给<input list>属性?

  13. 13

    如何正确地将args数组传递给Java中的方法?

  14. 14

    在React中,如何正确地将输入值从子级传递给父级

  15. 15

    如何从SwiftUI LazyVGrid正确地将“单元项”传递给.sheet?

  16. 16

    如何将点击处理程序从父母正确地传递给孩子?

  17. 17

    如何正确地将文件夹名称传递给Shell脚本?

  18. 18

    如何正确地将参数传递给fixedthreadpool,并控制线程执行?

  19. 19

    如何在Rails中正确地将参数传递给特定操作

  20. 20

    如何正确地将值传递给Google Maps URL方案回调?

  21. 21

    QML:如何从 C++ 代码正确地将属性传递给 PluginParameter 值?

  22. 22

    'this'对Lua中函数调用者的引用

  23. 23

    如何正确地将成员函数作为参数传递

  24. 24

    未传递功能参数。如何正确地将参数传递给另一个JavaScript文件的功能?

  25. 25

    如何正确地将“选择”选项与API调用绑定?

  26. 26

    如何正确地将表单数据传递给CodeIgniter中的数据库功能

  27. 27

    如何正确地将texture2d_array <float>传递给片段着色器?

  28. 28

    您如何正确地将视图中的post变量传递给CodeIgniter中的控制器?

  29. 29

    如果copy_to_user()失败,将返回值传递给setsockopts()调用者吗?

热门标签

归档