什么工具提供Xcode调试器来查找逻辑错误?

时间:2012-09-16 14:03:24

标签: iphone objective-c xcode debugging

我有一个具有复杂逻辑的程序。在不同的地方有许多功能可以改变参数“a”的值。

参数“a”的正确值应该在0..10范围内,但有时它会变得大于80

XCode是否提供了一些工具,我可以在其中键入表达式“if(a> 10)抛出一些异常”只查找一次,并找到将参数“a”更改为不正确值的位置?

2 个答案:

答案 0 :(得分:2)

a是某物的属性吗?如果是,您可以覆盖setter方法并检查值:

- (void)setA:(int)newA {
    if (newA > 10) {
        NSLog(@"Invalid value");
    }
    a = newA;
}

您可以在NSLog行上设置断点,只要设置了无效值,它就会停在那里,您可以检查呼叫追踪。

答案 1 :(得分:1)

我不确定如果a的值发生变化而没有在您更改a的值时调用此值,您是否可以设置此异常,但是您可以请致电NSException

if (a > 10) {
    [NSException raise:@"Invalid foo value" format:@"foo of %i is invalid", a];
}