我有一个 setter 方法(setMinimumNumberOfSides),我想在使用合成后覆盖它。在其中,我对实例变量施加了约束,以确保 int 在一定范围内。
稍后在自定义初始化方法中,我设置了另一个实例变量 (numberOfSides),但我需要确保 minimumNumberOfSides 和 maximumNumberOfSides 在界限内正确设置。我尝试将 setter 上的返回值更改为 BOOL,所以如果它成功/失败,我可以传回 YES 或 NO,但这会产生冲突的方法,我猜是因为我正在使用 synthesize 并覆盖 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;
}