Ios NSManagedObjectContext.fetch(:)方法文档中存在不一致
在的文档中,在方法定义中,只有一个参数Ios NSManagedObjectContext.fetch(:)方法文档中存在不一致,ios,core-data,Ios,Core Data,在的文档中,在方法定义中,只有一个参数请求,但在描述部分,它说有两个参数请求和错误。为什么不同 错误的意思是,在获取行之前,您指定了一个try-catch块,该块将捕获错误(抛出)。它不是一个参数,因此您必须将其包装在do-catch中,如果您尝试删除try,它将给出一个编译错误 do { let result:[People] = try managedContext.fetch(request) } catch let error as NSError { print
请求
,但在描述部分,它说有两个参数请求
和错误
。为什么不同
错误的意思是,在获取行之前,您指定了一个try-catch块,该块将捕获错误(抛出)。它不是一个参数,因此您必须将其包装在do-catch中,如果您尝试删除try,它将给出一个编译错误
do {
let result:[People] = try managedContext.fetch(request)
}
catch let error as NSError
{
print(error)
}
错误的意思是,在获取行之前,您指定了一个try-catch块,该块将捕获错误(抛出)。它不是一个参数,因此您必须将其包装在do-catch中,如果您尝试删除try,它将给出一个编译错误
do {
let result:[People] = try managedContext.fetch(request)
}
catch let error as NSError
{
print(error)
}
这是Objective-C和Swift互操作的结果。Objective-C中的一种常见模式是,如果出现问题,函数可以修改
错误
引用,如果查看该函数的Objective-C声明,您会看到:
- (NSArray *)executeFetchRequest:(NSFetchRequest *)request
error:(NSError * _Nullable *)error;
随着Swift中try/throw/catch的引入,所采用的模式适用于以这种方式声明的函数,即抛出
错误,而不是使用副作用和修改参数。这是Objective-C和Swift互操作的结果。Objective-C中的一种常见模式是,如果出现问题,函数可以修改错误
引用,如果查看该函数的Objective-C声明,您会看到:
- (NSArray *)executeFetchRequest:(NSFetchRequest *)request
error:(NSError * _Nullable *)error;
随着Swift中try/throw/catch的引入,所采用的模式适用于以这种方式声明的函数,即抛出错误,而不是使用副作用和修改参数。将抛出错误。描述取自Objective-C API,其中有第二个参数。啊,好的。把错误
归类为参数
有点奇怪。它们应该有一个部分专门用于抛出的error
,就像java处理exception
时抛出的error
一样。描述取自Objective-C API,其中有第二个参数。啊,好的。把错误
归类为参数
有点奇怪。它们应该只为抛出的错误
设置一个部分,就像java对异常
所做的那样,因此错误
参数并不表示我们需要传递错误的实例,但它告诉我们需要在try catch
块中包含对NSManagedObjectContext.fetch(:)的任何调用。是的,要报告执行特定获取的失败,那么error
参数并不表示我们需要传入error的实例,但它告诉我们需要在try catch
块中包含对
NSManagedObjectContext.fetch(:)的任何调用?是,报告执行特定获取的失败