Gui*_*gis 10 floating-point objective-c nsnumber cgfloat
Is there a safe way to "convert" a CGFloat to a NSNumber ?
NSNumber has the numberWithFloat: and numberWithDouble: methods but CGFloat being defined as float or double depending on the platform, it seems risky to use either one of them.
或者numberWithDouble:安全使用a CGFloat,因为它是更精确的?
Luk*_*cka 30
我相信@ NSNumber文字是足够好的
@(myCGFloat)
Run Code Online (Sandbox Code Playgroud)
在这里阅读更多内容:http://clang.llvm.org/docs/ObjectiveCLiterals.html
ipm*_*mcc 22
这是我处理它的方式:
@interface NSNumber (CGFloatAdditions)
+ (NSNumber*)numberWithCGFloat: (CGFloat)value;
- (CGFloat)CGFloatValue;
@end
@implementation NSNumber (CGFloatAdditions)
+ (NSNumber*)numberWithCGFloat: (CGFloat)value
{
#if CGFLOAT_IS_DOUBLE
return [NSNumber numberWithDouble: (double)value];
#else
return [NSNumber numberWithFloat: value];
#endif
}
- (CGFloat)CGFloatValue
{
#if CGFLOAT_IS_DOUBLE
return [self doubleValue];
#else
return [self floatValue];
#endif
}
@end
Run Code Online (Sandbox Code Playgroud)
CGFLOAT_IS_DOUBLECGBase.h由平台有条件地定义.
| 归档时间: |
|
| 查看次数: |
12103 次 |
| 最近记录: |