将CGFloat转换为NSUInteger将返回0

时间:2013-09-18 15:45:59

标签: objective-c c

我正在转换此CGFloat

CGFloat verticalTranslation = CGFLOAT_MAX;
使用以下代码

...到NSUInteger

if (verticalTranslation > NSUIntegerMax) unsignedInteger = NSUIntegerMax;
else unsignedInteger = verticalTranslation;

有效。但是,只要我用三元运算符替换ifunsignedInteger就变为0

NSUInteger unsignedInteger = verticalTranslation > NSUIntegerMax ? NSUIntegerMax : verticalTranslation;

使用三元版本时,为什么unsignedInteger等于0而不是NSUIntegerMax

1 个答案:

答案 0 :(得分:2)

为什么不尝试:

NSUInteger unsignedInteger = verticalTranslation > NSUIntegerMax ? NSUIntegerMax : (NSUInteger)verticalTranslation;