如果我有一个返回CGFloat的方法并且该方法无法找到预期的数字,我想返回类似NSNotFound的内容,但这是一个NSInteger。
这是最好的做法吗?
答案 0 :(得分:3)
您可以使用而不是数字(NaN
)。
但是对于这些问题,如果没有明确定义的非值(整数更糟糕),那么我更喜欢使用以下方法语义:
- (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。