【发布时间】:2025-12-11 04:00:01
【问题描述】:
我正在调用一个带有布尔值的块。根据调试器,布尔值是假的,但它似乎被视为真。这是编译器/Xcode 错误,还是我应该以类似于__block 的方式标记传递给块的参数?
// Hovering over the |finished| parameter displays the value of finished as NO
[self.repDataSynchronizationClient synchronizeWithRepId:rep.id andCompletion:^(NSString * progressMessage, BOOL finished){
if( finished )
{
[self hideLoader]; // Breakpoint set here, which I am hitting
}
else
{
[self setLoaderTitle:progressMessage];
}
}];
这是a screenshot 的情况,显示了断点命中和工具提示。
【问题讨论】:
-
另一种选择是它可能是调试器中的一个错误(即弹出窗口中显示的值可能是错误的)。
-
我没有看到错误。弹窗说是
NO,你也说是假的,矛盾在哪里? -
@H2CO3 如果值为NO,则不应该通过if语句。
-
@aryaxt 调试器显示断点后的下一行,我还是没问题。
-
@JoshCaswell 与 XCode 错误有关的问题,而不是特别是代码。图片非常适合这个问题
标签: objective-c xcode debugging objective-c-blocks