我试图在 Xcode 中设置一个 BOOL,但由于某种原因,它明显拒绝工作。没有其他东西在设置这个布尔值,只有这一个实例。我的代码如下:
.h
@interface SuspectsViewController : UIViewController
{
BOOL boolContentChanged;
}
@property (nonatomic) BOOL boolContentChanged;
.m
@synthesize boolContentChanged;
-(IBAction)buttonPressed:(id)sender
{
boolContentChanged = true;
}
我也尝试过使用 self.boolContentChanged 但也没有任何反应。为了尝试调试这个,我使用了 po boolContentChanged 并获得以下输出,第一个 po 是在 boolContentChanged = true 之前,第二个是在之后。
(lldb) po boolContentChanged
(BOOL) $4 = '\0' <nil>
(lldb) po boolContentChanged
(BOOL) $7 = '\0' <nil>
$ 是否表明它指向某个地址,或者纯粹用于调试参考?
另外,有什么原因会导致这个值为零吗?如果它是布尔值而不是指针,那么它肯定不需要隐式设置吗?
对此的任何建议都非常感谢,因为我无法解决,
先谢谢了,
埃利奥特
调试器 (gdb) 中的“po”是“print-object”的缩写。这BOOL
类型不是 Objective-C 对象。使用“p”或“print”显示值BOOL
, int
, char
, etc.
调试器响应“po”命令输出的美元数字(“$4”)将结果分配给调试器中的变量,您可以在以后的命令中使用该变量。
至于您描述的问题,您能否确认您的操作方法确实被调用了?尝试添加:
NSLog( @"In %@", NSStringFromSelector( _cmd ));
to your -buttonPressed
方法。如果您的操作实际上被调用,您将在调试器中看到以下内容:
在按下按钮时:
您还可以拥有NSLog()
输出你的值BOOL
:
NSLog( @"Before: %d", (int)boolContentChanged );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)