Ошибки обычно имеют тип NSError
или его подкласс. Они передаются как ссылки на методы объявлены следующим образом:
-(void)DoSomeStuff:(NSError **)error;
Итак, когда вы вызываете метод, который требует, чтобы передать ссылку на NSError
вы называете это следующим образом:
NSError *error = nil;
[self DoSomeStuff:&error];
Когда метод завершил свою работу, проверяя, действительно ли объект ошибки на самом деле что-то заполнил:
if(error)
{
//Do some stuff if there is an error.
//To see the human readable description you can:
NSLog(@"The error was: %@", [error localizedDescription]);
//To see the error code you do:
NSLog(@"The error code: %d", error.code);
}
else //There is no error you proceed as normal
{
//Do some other stuff - no error
}
PS Если вы не получите ошибки и метод не ведет себя так, как ожидалось, в реализации с этим методом есть что-то не так. Особенно, если это материал с открытым исходным кодом, ошибки кодирования могут легко отображаться, поэтому вы можете взглянуть на то, что метод делает, отлаживает и даже исправляет, если что-то не так ...
Вы неправильно диагностируете проблему. Нет такой вещи, как «пустой объект». Я подозреваю, что вы неправильно проверяете успех и разыгрываете висячий указатель. Отправьте код, который вы используете, и, возможно, кто-то сможет помочь. – Jim