0

0から1までのfloat値のみを受け入れるプロパティが必要です。プロパティにfloat_tまたはdouble_tタイプを定義することで標準的な方法でそれを行うことができますが、疑わしいことに、よりエレガントな方法はありますか?

4

2 に答える 2

3

double標準的な方法で実行します- /プロパティを定義floatし、セッターで有効性を確認します-例:

@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 に答える