我想要一个只接受介于0和1之间的浮点值的属性。我可以通过为属性定义float_t或double_t类型以标准方式执行此操作,但是怀疑,是否有更优雅的方法呢?
答案 0 :(得分: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;
}
答案 1 :(得分:1)
(目标 - )C不支持子范围类型。为此,你需要阿达(或其他几个)。你能做的最好的就是在你的制定者中实施支票。