Tôi có phương thức setter (setMinimumNumberOfSides) mà tôi muốn ghi đè sau khi sử dụng tổng hợp. Trong đó, tôi đặt một ràng buộc vào biến cá thể để đảm bảo rằng int nằm trong giới hạn nhất định.Ghi đè phương thức setter và lấy thông tin ra
Sau đó trong phương thức init tùy chỉnh, tôi đang đặt một biến mẫu khác (numberOfSides), nhưng tôi cần đảm bảo tối thiểuNumberOfSides và maximumNumberOfSides được đặt đúng trong giới hạn. Tôi đã thử thay đổi giá trị trả về trên setter thành BOOL, vì vậy tôi có thể trả lại YES hoặc NO nếu nó thành công/thất bại, nhưng điều đó đã tạo ra một phương thức xung đột, tôi đoán vì tôi đang sử dụng tổng hợp và ghi đè setter.
Làm cách nào để tôi có thể lấy thông tin dễ dàng hơn để kiểm tra xem trình cài đặt đã được gọi và trả về thành công chưa?
-(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;
}
Đánh bại tôi. +1 –