我正在转换这个CGFloat
:
CGFloat verticalTranslation = CGFLOAT_MAX;
…使用以下代码
NSUInteger
:if (verticalTranslation > NSUIntegerMax) unsignedInteger = NSUIntegerMax;
else unsignedInteger = verticalTranslation;
它起作用了。然而,只要我用三元运算符替换
if
,就变成unsignedInteger
:NSUInteger unsignedInteger = verticalTranslation > NSUIntegerMax ? NSUIntegerMax : verticalTranslation;
为什么在使用三元版本时
0
等于unsignedInteger
而不是0
? 最佳答案
你为什么不试试:
NSUInteger unsignedInteger = verticalTranslation > NSUIntegerMax ? NSUIntegerMax : (NSUInteger)verticalTranslation;
关于objective-c - 将CGFloat转换为NSUInteger返回0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18876765/