Если Вы хотите весь Ваш, удаляет для действия того пути, Вы могли бы проверить жадный - удаляют.
Я почти уверен, что класс NSError должен делать именно это - давать подробности об ошибках. Наиболее распространенный шаблон, который вы увидите, - это метод, который принимает указатель на объект NSError, например:
- (id)doSomethingWithArgument:(id)arg error:(NSError **)error
Метод возвращает некоторое значение (или, возможно, nil
) для результата выполнения чего-либо, но если вызов завершился неудачно, объект NSError будет помещен в переданный указатель с подробностями об ошибке. Ваша документация отвечает за определение того, что будет возвращено, если метод действительно обнаруживает ошибку.
Другой метод, который приходит на ум, - это блок @throw
- @catch
; однако в Objective-C @throw
исключение может быть довольно затратным с вычислительной точки зрения, и обычно это рекомендуется делать только в действительно исключительных ситуациях.
Изменить: вау, Оказывается, многие люди имеют действительно твердое мнение об исключениях @throw
. Подводя итог (весьма полезному) комментарию к проблеме:
error
, продемонстрированный выше, или опубликуйте экземпляры NSNotification. @throw
/ @catch
, будьте очень осторожны с окружающей их логикой. Objective-C предоставляет множество способов отсоединить методы для запуска в других потоках или отложить выполнение и т. Д. Будьте очень осторожны, чтобы учесть все эти возможности при написании кода. Наконец, еще один очень важный момент:
error
, переданный методу, возвращаемое значение должно указывать на это. Не пытайтесь сделать и то, и другое (вернуть частично допустимый объект и установить объект error
).