Хорошо, вот проклятая вещь:
- (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> минимальный) {}. Даже если newMinimumNumberOfSides больше, чем минимум, он входит в оператор else.
Я сделал:
NSNumber *minimum = [[NSNumber alloc] initWithInt:(int)6];
[polygon setMinimumNumberOfSides:minimum];
что больше 2. И я получаю сообщение об ошибке ...
Я пытался NSLog эти два, и это дает мне правильные числа ... Так что же с этим происходит?
Большое спасибо!