OC中if-else与三目运算符的效率比较

结论写在最前面:
执行效率差别极小,甚至小于1/100000000s(亿分之一秒)。

核心代码:

NSString *time1 = [NSString mk_currentTimeStampInMiliseconds];
for (int i = 0; i < 100000000; i++) {
    cell.view.playButton.hidden = [self.imgSource[indexPath.row] valueForKey:@"videoPath"].length > 1 ? NO : YES;            
}
NSString *time2 = [NSString mk_currentTimeStampInMiliseconds];
for (int i = 0; i < 100000000; i++) {
    if ([self.imgSource[indexPath.row] valueForKey:@"videoPath"].length > 1) {
        cell.view.playButton.hidden = NO;
    } else {
        cell.view.playButton.hidden = YES;
    }
}
NSString *time3 = [NSString mk_currentTimeStampInMiliseconds];
NSLog(@"\ntime1 = %@\ntime2 = %@\ntime3 = %@\n", time1, time2, time3);

打印结果:


执行一亿次的时间

可以看到,同样循环执行一亿次的总时间,if-else仅比三目运算符快1s,更何况其中还有亿次级的取值、赋值操作。

你可能感兴趣的:(OC中if-else与三目运算符的效率比较)