3

CGFloat を返すメソッドがあり、そのメソッドが期待される数値を見つけられなかった場合、NSNotFound のようなものを返したいのですが、それは NSInteger です。

これのベストプラクティスは何ですか?

4

2 に答える 2

3

数字( )は使用できません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;
}
于 2014-12-12T15:26:20.527 に答える
3

非常にクリーンな方法は、NSNumber にラップすることです。

- (NSNumber *)aFloatValueProbably
{
    CGFloat value = 0.0;
    if (... value could be found ...) {
        return @(value);
    }
    return nil;
}

次に、存在しない値に対して関数が nil を返したかどうかを確認できます。

于 2014-12-12T15:37:39.843 に答える