Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我有一个返回 CGFloat 的方法并且该方法找不到预期的数字怎么办,我想返回类似 NSNotFound 的东西,但那是一个 NSInteger。
对此的最佳做法是什么?
您不能使用数字( NaN)。
NaN
见和。nan()_nanf()isnan()
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。