菜鸟教程小白 发表于 2022-12-12 23:48:58

ios - 是否可以将一系列 block 代码存储在一个数组中并在需要时执行它?


                                            <p><div>
            <aside class="s-notice s-notice__info post-notice js-post-notice mb16"role="status">
      <div class="d-flex fd-column fw-nowrap">
            <div class="d-flex fw-nowrap">
                <div class="flex--item wmn0 fl1 lh-lg">
                  <div class="flex--item fl1 lh-lg">
                        <b>这个问题在这里已经有了答案</b>:
                        
                  <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您可以在将 block 存储在数组中时使用 <code>Block_copy</code> 函数将 block 移动到堆中,并在完成后使用 <code>Block_release</code> 函数。 <code>Block_copy</code> 会将执行 block 变量移动到堆中,这样当您继续运行应用程序时,变量不会在堆栈内存中被覆盖。</p>

<p>使用 Block_copy 的示例。你需要先做一个桥接 Actor </p>

<p>像这样在你的标题中为你的 block 类型定义一个 typedef。此类型示例没有参数。</p>

<pre><code>typedef void (^myBlockType)();
</code></pre>

<p>当你想向数组中添加一个 block 时,你可以像这样复制 block :</p>

<pre><code>- (void)addBlock:(void (^)())aBlock
{
      ;
}
</code></pre>

<p>当你完成 block 后,你需要像这样释放它(对于 ARC 不是必需的):</p>

<pre><code>id finishBlock =
Block_release((__bridge void *)finishBlock);
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 是否可以将一系列 block 代码存储在一个数组中并在需要时执行它?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/13462045/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/13462045/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 是否可以将一系列 block 代码存储在一个数组中并在需要时执行它?