0

我想要一个只接受 0 到 1 之间的浮点值的属性。我可以通过为属性定义 float_t 或 double_t 类型以标准方式做到这一点,但怀疑是否有更优雅的方法呢?

4

2 回答 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 回答