如何为通过引用调用传递的指针指针赋值?

don*_*ile 1 objective-c

我想要实现类似于这些人在这里做的事情:

- (NSUInteger)countForFetchRequest:(NSFetchRequest *)request error:(NSError **)error
Run Code Online (Sandbox Code Playgroud)

就像你看到的那样,你传递一个NSError指针,如果出现错误,那个nice方法会为你的指针指定一个真正的NSError对象.所以很酷的是,该方法返回一个NSUInteger,但也可以返回一个NSError,而不必乱用丑陋和胖的数组或字典.

那么如何将对象分配给传入的错误指针?

and*_*n22 6

这很简单.本Apple指南介绍了如何实现返回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.
}
Run Code Online (Sandbox Code Playgroud)

注意星号.:)