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);

打印结果:

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

    推荐阅读