私は、合成メソッドを使ってオーバーライドしたいセッターメソッド(setMinimumNumberOfSides)を持っています。その中で、intが特定の範囲内にあることを確認するために、インスタンス変数に制約を入れています。セッターメソッドをオーバーライドして情報を取得する
後でカスタムのinitメソッドで別のインスタンス変数(numberOfSides)を設定していますが、minimumNumberOfSidesとmaximumNumberOfSidesが境界内で正しく設定されていることを確認する必要があります。私はセッターの戻り値をBOOLに変更しようとしました。成功したか失敗したかをYESまたはNOに戻すことができましたが、これは競合するメソッドを作成したため、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;
}
私にそれを打つ。 +1 –