Jac*_*cob 10 cocoa cocoa-touch objective-c nserror
我对objective-c很新,我开始想知道处理和捕获错误的常用/标准/正确方法是什么?
似乎有可能使用NSError来做到这一点,这是一个好主意还是劫持可可?
Tim*_*Tim 17
我很确定NSError类是做什么的 - 提供有关错误的详细信息.您将看到的最常见的模式是一个采用指向NSError对象的指针的方法,如:
- (id)doSomethingWithArgument:(id)arg error:(NSError **)errorRun Code Online (Sandbox Code Playgroud)
该方法nil为执行某些操作的结果返回一些值(或可能),但如果调用失败,则会在传递的指针上放置一个NSError对象,其中包含有关失败的详细信息.如果方法遇到错误,您的文档负责指定返回的内容.
想到的另一种方法是@throw- @catch块; 然而,在Objective-C中@throw,异常可能在计算上相当昂贵,而且通常只建议在真正特殊情况下这样做.
编辑:哇,事实证明很多人@throw对异常有很强烈的意见.总结一下(非常有帮助的)关于这个问题的评论:
error上面演示的方法或发布NSNotification的实例.@throw/ @catchblocks,请非常小心它们周围的逻辑.Objective-C提供了许多方法来分离在其他线程中运行的方法,或延迟执行等.在编写代码时要非常小心地考虑所有这些可能性.最后,另一个非常有效的观点:
error传递给方法的对象,则返回值应指示它.不要尝试两者都做(返回部分有效的对象并设置error对象).| 归档时间: |
|
| 查看次数: |
2157 次 |
| 最近记录: |