好的,这是该死的事情:
- (void)setMinimumNumberOfSides:(NSNumber *)newMinimumNumberOfSides {
if (newMinimumNumberOfSides != minimumNumberOfSides) {
NSNumber *minimum = [[NSNumber alloc] initWithInt:(int)2];
if (newMinimumNumberOfSides > minimum) {
[newMinimumNumberOfSides retain];
[minimumNumberOfSides release];
minimumNumberOfSides = newMinimumNumberOfSides;
} else {
NSLog(@"setMinimumNumberOfSides: Invalid number of sides: %@ is smaller than the minimum of %@ allowed.",
newMinimumNumberOfSides, minimum);
}
[minimum release];
[newMinimumNumberOfSides release];
}
}
里面发生了奇怪的事情!问题是我的 if (newMinimumNumberOfSides > minimum) {} 条件。即使 newMinimumNumberOfSides 大于最小值,它也会进入 else 语句。
我做了:
NSNumber *minimum = [[NSNumber alloc] initWithInt:(int)6];
[polygon setMinimumNumberOfSides:minimum];
这比 2 大得多。我收到我的错误消息...
我尝试 NSLog 这两个,它给了我正确的数字......那么这是怎么回事?
非常感谢!