我有一个具有复杂逻辑的程序。在不同的地方有许多功能可以改变参数“a”的值。
参数“a”的正确值应该在0..10范围内,但有时它会变得大于80
XCode是否提供了一些工具,我可以在其中键入表达式“if(a> 10)抛出一些异常”只查找一次,并找到将参数“a”更改为不正确值的位置?
答案 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];
}