CGFloat を返すメソッドがあり、そのメソッドが期待される数値を見つけられなかった場合、NSNotFound のようなものを返したいのですが、それは NSInteger です。
これのベストプラクティスは何ですか?
CGFloat を返すメソッドがあり、そのメソッドが期待される数値を見つけられなかった場合、NSNotFound のようなものを返したいのですが、それは NSInteger です。
これのベストプラクティスは何ですか?
数字( )は使用できませんNaN
。
nan()
、nanf()
およびを参照してくださいisnan()
。
ただし、明確に定義された非値(整数の場合はさらに悪い) がないこれらの問題については、次のメソッド セマンティクスを使用することを好みます。
- (BOOL)parseString:(NSString *)string
toFloat:(CGFloat *)value
{
// parse string here
if (parsed_string_ok) {
if (value)
*value = parsedValue;
return YES;
}
return NO;
}
非常にクリーンな方法は、NSNumber にラップすることです。
- (NSNumber *)aFloatValueProbably
{
CGFloat value = 0.0;
if (... value could be found ...) {
return @(value);
}
return nil;
}
次に、存在しない値に対して関数が nil を返したかどうかを確認できます。