我想要一个只接受 0 到 1 之间的浮点值的属性。我可以通过为属性定义 float_t 或 double_t 类型以标准方式做到这一点,但怀疑是否有更优雅的方法呢?
问问题
83 次
2 回答
3
以标准方式执行 - 定义double
/float
属性并在 setter 中检查有效性 - 示例:
@property (nonatomic, assign, readwrite) float property;
@synthesize property = _property;
- (void)setProperty:(float)property {
NSAssert(property >= 0.0f && property <= 1.0f, @"Invalid value passed to property setter.").
_property = property;
}
于 2012-10-24T08:55:11.580 回答
1
(Objective-)C 不支持子范围类型。为此,您需要 Ada(或其他一些人)。你能做的最好的就是在你的设置器中实施检查。
于 2012-10-24T08:53:22.180 回答