我到处都这样做
NSInteger myint = -3;
// ...
NSUInteger myuint = myint >= 0 ? myint : 0;
在Objective C中是否有一个数学函数可以在不使用三元/条件赋值的情况下执行相同的操作?像这样:
NSUInteger myuint = rounduptozero( myint );
答案 0 :(得分:2)
使用:
NSUInteger myuint = MAX(myint, 0);
或定义您自己的rounduptozero
函数:
NSUInteger rounduptozero(NSInteger val) {
return MAX(val, 0);
}
NSUInteger myuint = rounduptozero(mint);
答案 1 :(得分:0)
MAX在objective-c运行时中定义(更具体地说,它在NSObjCRuntime中,它包含在Foundation框架中),因此您可以安全地使用MAX(value,0)。
如果你在整个地方使用它,为了清楚起见,我建议你自己(或在一个函数中)包装宏。