2

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

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

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

4

2 回答 2

2

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

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

您可以在 NSLog 行上设置断点,每当设置了无效值时,它就会停在那里,您可以检查调用跟踪。

于 2012-09-16T14:15:48.543 回答
1

我不确定如何设置它以便在更改的值时抛出异常a而不在更改值的地方调用它a,但是你可以NSException用这个来调用自己:

if (a > 10) {
    [NSException raise:@"Invalid foo value" format:@"foo of %i is invalid", a];
}
于 2012-09-16T14:10:38.113 回答