gpt4 book ai didi

objective-c - 如果有的话,NSError 自己做了什么?

转载 作者:行者123 更新时间:2023-12-02 22:25:03 24 4
gpt4 key购买 nike

我希望开始将错误捕获放入我的代码中,我想看看 NSError 对象自己为我做了什么,以及我必须自己添加什么。

查看this SO questionthe Apple Docs ,看起来所有 NSError 所做的就是保存一个数字错误代码、错误位置和错误描述。对于所有这三个项目,我必须在我的代码中指定它们。然后,如果我想做一些事情,比如跳到当前正在执行的任何方法的末尾(如果应用程序试图运行它们,这很可能会导致崩溃),或者显示一个 UIAlertView 告诉用户有一个错误,我也必须自己指定所有这些,对吗?

我是初学者,还有什么我想考虑做的吗?

最佳答案

NSError 是错误信息的容器,它自己不做任何事情。该类的设计使您的代码的不同部分可以以标准化的方式相互传达错误信息。简单地在采用 NSError** 的方法中设置错误不会执行任何操作 - 调用者有责任检查 *error 是否为非 nil,跳到方法的末尾,显示本地化描述,提示用户执行操作等。

但是,NSError 足够灵活,可以让您做到所有这些:调用者可以提供几乎任何类型的信息;您可以跟踪恢复尝试,向用户显示本地化消息,或将附加信息存储在 NSError 对象中,然后将其返回到调用链的更深处。

注意:Cocoa 框架方法通常要求您在使用NSError 之前检查直接返回值,而不是检查错误是否为nil。如果方法指示失败,则保证错误有效,但不能保证成功时为 nil,即使您事先将其设置为 nil

关于objective-c - 如果有的话,NSError 自己做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13089440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com