Swift3 什么';Swift中错误和N错误的区别是什么?

Swift3 什么';Swift中错误和N错误的区别是什么?,swift3,error-handling,nserror,Swift3,Error Handling,Nserror,我正在创建一个应该返回错误的库,所以我想知道应该使用哪个库来实现我的目的 更新: 我应该澄清一下,返回的结果将来自异步调用,因此我需要通知用户是否有错误,我想知道应该使用哪种类型的错误或NSError。NSError是Cocoa类 NSError对象以可扩展的、面向对象的方式封装有关错误条件的信息。它由预定义的错误域、特定于域的错误代码和包含特定于应用程序的信息的用户信息字典组成 Error是一个Swift协议,类、结构和枚举可以且NSError确实符合该协议 表示可以抛出的错误值的类型 任何声

我正在创建一个应该返回错误的库,所以我想知道应该使用哪个库来实现我的目的

更新:
我应该澄清一下,返回的结果将来自异步调用,因此我需要通知用户是否有错误,我想知道应该使用哪种类型的错误或NSError。

NSError
是Cocoa

NSError
对象以可扩展的、面向对象的方式封装有关错误条件的信息。它由预定义的错误域、特定于域的错误代码和包含特定于应用程序的信息的用户信息字典组成

Error
是一个Swift协议,类、结构和枚举可以且
NSError
确实符合该协议

表示可以抛出的错误值的类型

任何声明符合
错误
协议的类型都可用于表示Swift错误处理系统中的错误。由于
错误
协议本身没有任何要求,因此您可以对创建的任何自定义类型声明一致性

引用的部分是文档中的副标题说明


Swift的错误处理系统是使用
try-catch
捕捉错误的模式。它要求捕获的错误由方法抛出。与使用
NSError
实例的传统错误处理相比,此模式具有更大的通用性。如果您计划而不是实现
try-catch
您实际上不需要
错误协议。

很有趣,那么我应该使用错误协议作为从库返回错误的类型。如果您计划抛出错误的方法,那么是的。在我的情况下,将有一个参数作为错误的闭包。我理解,但据我所知,try-catch不适用于异步调用,因此我打算使用错误作为参数。
ErrorType
->Swift 2,
error
->->Swift 3@Honey