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

时间:2010-04-22 09:48:20

标签: objective-c

我希望获得类似于这些人在这里做的事情:

- (NSUInteger)countForFetchRequest:(NSFetchRequest *)request error:(NSError **)error

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

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

1 个答案:

答案 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.
}

注意星号。 :)