在判断条件中使用数组的count属性获取数量会有个坑,先看代码:
NSArray *array = @[@"", @""];
NSInteger left = -1;
NSInteger per = 30;
NSInteger count = array.count;
if (left < per * count) {
NSLog(@"YES");
} else {
NSLog(@"NO");
}
// console: YES
if (left < per * array.count) {
NSLog(@"YES");
} else {
NSLog(@"NO");
}
// console: NO
- 第一个if的判断结果是正确的。
- 第二个if的判断结果是错误的。
目前原因暂未查到,如有大佬知道烦请告知
平时在开发时如要做条件判断,其中涉及到运算时,尽量先将两个比较条件赋值局部变量进行比较。
推荐写法:
NSArray *array = @[@"", @""];
NSInteger left = -1;
NSInteger per = 30;
NSInteger sum = per * array.count;
if (left < sum) {
NSLog(@"YES");
} else {
NSLog(@"NO");
}