我有一个setter方法(setMinimumNumberOfSides),我想在使用synthesis后覆盖它。在它中,我对实例变量施加了一个约束,以确保int在一定的范围内。
稍后在自定义init方法中,我将设置另一个实例变量(numberOfSides),但我需要确保minimumNumberOfSides和maximumNumberOfSides在边界内正确设置。我尝试将setter上的返回值更改为BOOL,这样如果成功/失败,我就可以返回YES或NO,但这创建了一个冲突的方法,我猜是因为我正在使用合成和重写setter。
如何轻松地获取信息以检查setter是否被调用并成功返回?
-(void)setNumberOfSides:(int)sides
{
if ((sides < maximumNumberOfSides) && (sides > minimumNumberOfSides))
{
numberOfSides = sides;
}
else
NSLog (@"Invalid number of sides: %d is outside the constraints allowed", sides);
}
-(void)setMinimumNumberOfSides:(int)minimum
{
if (minimum > 2)
minimumNumberOfSides = minimum;
}
-(void)setMaximumNumberOfSides:(int)maximum
{
if (maximum <= 12)
maximumNumberOfSides = maximum;
}
-(id)initWithNumberOfSides:(int)sides minimumNumberOfSides:(int)min maximumNumberOfSides:(int)max
{
if (self = [super init])
{
self.minimumNumberOfSides = min;
self.maximumNumberOfSides = max;
self.numberOfSides = sides;
}
return self;
}