菜鸟教程小白 发表于 2022-12-12 15:49:21

ios - 当设备未连接时,Xcode 在 bool 上编译错误


                                            <p><p>我正在尝试使用这个片段来做一个简单的动画:</p>

<pre><code>[UIView animateWithDuration:2.0
                      delay:0.0
                  options: UIViewAnimationOptionCurveEaseInOut
               animations:^{
                  ;

               }
               completion:^(BOOL finished){
                     if(finished)NSLog(@&#34;Finished !!!!!&#34;);
                     // do any stuff here if you want
               }];
</code></pre>

<p>但是 XCode 给我一个错误说明:</p>

<blockquote>
<p>&#34;Incompatibile block pointer types sending &#39;void(^)(uint_8t)&#39; to
parameter of type &#39;void(^)(BOOL)&#39;&#34;.</p>
</blockquote>

<p>如果我尝试将“BOOL”更改为“bool”,则代码在 iPad Air 上编译时可以正常工作,但是当我断开 iPad 并尝试模拟器时,我会收到相同的错误,但类型不同:</p>

<blockquote>
<p>&#34;Incompatibile block pointer types sending &#39;void(^)(bool)&#39; to
parameter of type &#39;void(^)(BOOL)&#39;&#34;.</p>
</blockquote>

<p>在我看来这很奇怪,因为它是一个似乎适用于许多人的代码片段,并且是一段相当标准的代码。什么可能导致这种行为? </p>

<p>附:我还在 - (void)viewWillDisappear:(bool)animated 方法中收到不兼容类型的警告。当我连接 iPad 时它们也会消失,并在断开连接时再次出现。</p>

<p>编辑:----
这段代码甚至会导致错误:</p>

<pre><code>[searchArray enumerateObjectsUsingBlock:^(NSString *key, NSUInteger idx, BOOL *stop)
   {
         address = addresses;
         if(address) *stop = YES;
   } ];
</code></pre>

<p>也在 BOOL 字段上。并且错误是相同的,相互冲突的参数类型。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>BOOL 是一种不同的类型,具体取决于您编译为 32 位还是 64 位。使用了不同的类型,例如 Bool、bool、Boolean 以及可能还有其他类型 - 确保在任何地方都使用相同的类型。 </p>

<p>插入您的设备意味着将为您的设备而非模拟器编译代码,因此这可能会在 32 位和 64 位之间切换并触发问题。 </p>

<p>我还会检查代码中某处是否存在 typedef 或 #define for BOOL。双击代码中的 BOOL,右键单击并“显示定义”。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 当设备未连接时,Xcode 在 bool 上编译错误,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/31337209/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/31337209/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 当设备未连接时,Xcode 在 bool 上编译错误