使用NSError以正确的方式使用非BOOL返回函数

时间:2012-11-14 09:46:35

标签: cocoa foundation nserror

查看Error Handling Programming Guide,我理解在以下情况下,我必须永远不要评估NSError参数 theError ,除非返回值为NO

BOOL success = [myDoc writeToURL:[self docURL] ofType:@"html" error:&theError];

当返回值不是成功BOOL时,casses中会发生什么,而它是一个集合对象?

以[NSIncrementalStore obtainPermanentIDsForObjects:error]为例。我不能使用错误参数评估错误。我应该寻找什么?我想我可以收到一个零指针或一个空数组。在这种情况下,空数组似乎不是一个好的响应,尽管在其他函数中,空数组可能是一个好的数组。我可以read如果发生错误,错误对象将包含对所发生事件的描述,但我不清楚如何才能发现错误实际发生。

在这些情况下,正常的Cocoa或Foundation方式表示错误是什么?

1 个答案:

答案 0 :(得分:1)

对于那个方法,你应该返回一个与传入对象一样多的项目的数组。我会说如果你不这样做(数组是零或空),你就是'在错误的情况下,因为你违反了文档所说的内容:

  

包含数组中对象的对象ID的数组。

     

返回的数组必须以与数组中出现的对象相同的顺序返回对象ID