Ell*_*rez 0 debugging xcode boolean initialization objective-c
我试图在Xcode中设置一个BOOL,由于某种原因,它很明显拒绝工作.没有其他设置这个bool,只有这一个例子.我的代码如下:
.H
@interface SuspectsViewController : UIViewController
{
BOOL boolContentChanged;
}
@property (nonatomic) BOOL boolContentChanged;
Run Code Online (Sandbox Code Playgroud)
.M
@synthesize boolContentChanged;
-(IBAction)buttonPressed:(id)sender
{
boolContentChanged = true;
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用self.boolContentChanged,但也没有任何反应.为了尝试调试这个,我使用po boolContentChanged并得到以下输出,第一个po在boolContentChanged = true之前,第二个在之后.
(lldb) po boolContentChanged
(BOOL) $4 = '\0' <nil>
(lldb) po boolContentChanged
(BOOL) $7 = '\0' <nil>
Run Code Online (Sandbox Code Playgroud)
$表示它指向某个地址,还是纯粹用于调试参考?
还有,这有什么理由会是零吗?当然它不需要隐式设置它是否是一个bool而不是一个指针?
对此我提出的任何建议都非常感谢,因为我无法解决这个问题,谢谢先进的Elliott
调试器(gdb)中的"po"是"print-object"的缩写.该BOOL类型不是Objective-C对象.使用"p"或"打印",以显示的值BOOL,int,char等.
调试器响应您的"po"命令输出的美元数("$ 4")将结果分配给调试器中的变量,您可以在以后的命令中使用该变量.
至于你描述的问题,你能确认你的行动方法实际上是被调用的吗?尝试添加:
NSLog( @"In %@", NSStringFromSelector( _cmd ));
Run Code Online (Sandbox Code Playgroud)
你的-buttonPressed方法.如果您的操作实际上已被调用,您将在调试器中看到:
在buttonPressed中:
您还可以NSLog()输出您的值BOOL:
NSLog( @"Before: %d", (int)boolContentChanged );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3045 次 |
| 最近记录: |