我希望获得类似于这些人在这里做的事情:
- (NSUInteger)countForFetchRequest:(NSFetchRequest *)request error:(NSError **)error
就像你可以看到的那样,你传递一个NSError指针,如果出现错误,那个nice方法会为你的指针分配一个真正的NSError对象。所以很酷的是,该方法返回一个NSUInteger,但也可以返回一个NSError,而不必乱用丑陋的胖数组或字典。
那么如何将对象分配给传入的错误指针?
答案 0 :(得分:6)
这很容易。 This Apple guide显示了如何实现返回NSError对象的方法。但要长篇大论,非常简短:
- (NSUInteger)countForFetchRequest:(NSFetchRequest *)request error:(NSError **)error
{
//Do stuff, including make MyCustomErrorDomain and errCode and eDict.
if (error != NULL) { // check to avoid crash if **error is not provided
*error = [[[NSError alloc] initWithDomain:MyCustomErrorDomain code:errCode userInfo:eDict] autorelease];
}
//Do some more stuff.
}
注意星号。 :)