我正在转换这个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/

10-12 21:21