iOS的@try、@catch()

作者: iHTCboy | 来源:发表于2015-03-12 23:19 被阅读2874次

    NSArray *tabBarItems=self.tabBar.items;

    NSArray * title = @[@"首页",@"分类",@"购物车",@"消息"];

    @try {

    [tabBarItems enumerateObjectsUsingBlock:^(UITabBarItem * indexItem, NSUInteger idx, BOOL *stop) {

    indexItem.title=[title objectAtIndex:idx];

    indexItem.image=[UIImage imageNamed:[NSString stringWithFormat:@"menu_0%ld_normal",idx+1]];

    NSLog(@"%ld",idx);

    }];

    }

    @catch (NSException *exception) {

    NSLog(@"%@",@"有异常");

    }

    @finally {

    NSLog(@"%@",@"最后执行");

    }

    今天被同事问,所以学习了一下,为什么OC很少用@try @catch

    在网上搜索到知乎上的答案,总结一下:

    1、@try@catch解决异常的能力强吗?

    2、@try@catch对资源消耗多吗?

    3、Cocoa开发者习惯了?

    结果是:

    解决问题能力不强,并造成额外的开销,所以很少用?

    问题留给自己,有时间在考证~

    nice~

    - 如果有什么疑问,可以在评论区一起讨论;

    - 如果有什么不正确的地方,欢迎指导!

    > 注:本文首发于iHTCboy's blog,如若转载,请注明来源。

    相关文章

      网友评论

      • 雨林QiQi:感觉Android的try catch 挺好用的,不知道和OC中有什么区别呢 ?
      • 雨林QiQi:额,为什么解决能力不强,比如数组越界这种导致程序崩溃的问题,可以catch住吗,防止程序崩溃。而且一般是什么时候用try catch 呢,OC中?
        iHTCboy:@雨林QiQi 谢谢打赏!针对iOS程序崩溃的情况较少出现,因为苹果审核不通过。另一方面优秀的crash监视软件做的很好。所以针对iOS开发,懒得写了
        雨林QiQi:@iHTCboy 原来是这样,谢谢哈
        iHTCboy:@雨林QiQi 这个只是从性能来考虑。由于苹果手机cpu性能好,理论上OC使用try catch没有问题,可以捕捉到数组越界 空字条等。所谓性能损耗,我的理解最大就是电量,多做一个异常处理,计算就多一点,电量也损耗更多,这些都是积累下来的。所以,为什么要做内存优化,重构,算法设计,都是希望减少cpu计算量,好处自然多多~

      本文标题:iOS的@try、@catch()

      本文链接:https://www.haomeiwen.com/subject/itebxttx.html