Как присвоить значение указателю-указателю, переданному в вызове по ссылке? - PullRequest
1 голос
/ 22 апреля 2010

Я хочу добиться чего-то похожего на то, что эти парни делают здесь:

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

как вы можете видеть, вы передаете указатель NSError, и этот хороший метод назначит объекту настоящий указатель NSError в случае возникновения ошибки. Так что классная вещь в этом состоит в том, что метод возвращает NSUInteger, но может ТАКЖЕ вернуть NSError, без необходимости возиться с уродливыми и толстыми массивами или словарями.

Так, как я мог назначить объект переданному указателю ошибки?

1 Ответ

6 голосов
/ 25 апреля 2010

Это легко. В этом руководстве 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.
}

Обратите внимание на звездочку.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...