gpt4 book ai didi

objective-c - Objective-C block 中的代码如何引用 block 对象本身?

转载 作者:太空狗 更新时间:2023-10-30 03:15:42 27 4
gpt4 key购买 nike

self 只是一个 block 内的捕获变量,并不引用 block 本身,那么 block 如何在没有用于该目的的显式捕获变量的情况下引用自身?

最佳答案

__block void(^strawberryFields)();
strawberryFields = [^{ strawberryFields(); } copy];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),
strawberryFields);
  • 您使用 __block 因为该 block 将在创建 block 时复制 strawberryFields 的值,这将在赋值之前

  • 您还必须在任何其他复制操作之前复制 block ,否则您最终会得到一个引用堆栈原始版本的 block 。

  • 请注意,上面的代码泄漏了 block 。在某处,需要该 block 的版本来平衡副本。

关于objective-c - Objective-C block 中的代码如何引用 block 对象本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5201256/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com