さて、これが気の毒なことです:
- (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よりもはるかに大きいです。エラーメッセージが表示されます...
私はそれらの2つをNSLogしようとしました、そしてそれは私に正しい数を与えます...それで、これで何が起こっているのですか?
どうもありがとう!