对于花车来说,NSNotFound的等价物是多少

时间:2014-12-12 15:23:03

标签: ios objective-c nsinteger cgfloat

如果我有一个返回CGFloat的方法并且该方法无法找到预期的数字,我想返回类似NSNotFound的内容,但这是一个NSInteger。

这是最好的做法吗?

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:3)

一种非常干净的方法是将其包装成NSNumber:

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

然后你可以检查函数是否为你不存在的值返回nil。