Я отлаживаю пример учебного фрагмента и запутался по поводу переопределения сеттеров.
Я объявляю и переопределяю, как показано здесь:
//
// PolygonShape.h
//
@interface PolygonShape : NSObject
{
int numberOfSides;
}
@property int numberOfSides;
//
// PolygonShape.m
//
@synthesize numberOfSides;
// custom setter.
- (void) setnumberOfSides:(int) i
{
if ((i > minimumNumberOfSides) && (i <= maximumNumberOfSides))
numberOfSides = i;
else
NSLog (@"Number of sides outside limits:\n You entered %d, limits are min.:%d, max.:%d",
i, minimumNumberOfSides+1, maximumNumberOfSides);
}
//
// main.m
//
poly = [[PolygonShape alloc] init];
poly.numberOfSides = 2;
[poly setnumberOfSides:2];
Итак, я предполагаю, чтоТак как я " переопределяю " синтезированного сеттера для numberOfSides
, тогда poly.numberOfSides = 2;
вызвал бы мою (void) setnumberOfSides:(int) i
функцию.Но вместо этого единственный способ, которым вызывается функция, это когда я явно делаю [poly setnumberOfSides:2];
Я не получаю это.Какой смысл переопределять тогда?
Или, более вероятно, что я делаю неправильно?;)