Создание домена NSError

Я хотел бы создать собственный домен ошибок для своего приложения. У меня есть перечисляемый тип NSInteger, который охватывает все возможные коды ошибок, которые я могу получить, мой вопрос: как связать их с моим личным доменом? Спасибо.


person John Lane    schedule 08.05.2012    source источник


Ответы (1)


Ваш домен — это просто строка с его именем. Вам не нужно его нигде регистрировать.

В заголовке с кодами ошибок добавьте эту строку:

extern NSString *const MyErrorDomain;

И в вашем файле реализации:

NSString *const MyErrorDomain = @"MyErrorDomain";

Затем вы можете использовать эту именованную константу для своего домена ошибок. Сделанный!

person Jonathan Grynspan    schedule 08.05.2012
comment
Просто чтобы уточнить, когда вы говорите, файл реализации, где для этого будет лучшее место? Я создаю собственный класс ошибок. Моя ошибка. - person John Lane; 08.05.2012
comment
Однако лучше всего использовать обратную схему URL-адресов, например. com.mycompany.myapp.error. Если вы хотите использовать его только в одной пользовательской ошибке, поместите определение в файл MyError.m, недоступный извне. - person Sulthan; 08.05.2012
comment
@MarioPen: Ваш .m файл. Если у вас нет того, который соответствует заголовку, где находится ваш enum, лучше всего сделать его и поместить туда константу. - person Jonathan Grynspan; 08.05.2012
comment
@Sulthan Обратная нотация обычно не используется для доменов ошибок, потому что они могут быть представлены пользователям, а нотация обычно делает их очень длинными. Это все вопрос стиля/предпочтения, поскольку любая строка будет рассматриваться как допустимый домен ошибки. - person Jonathan Grynspan; 08.05.2012
comment
@JonathanGrynspan Домен ошибки — это не то, что следует представлять пользователям. Никогда. Формат рекомендуется в developer.apple. com/library/mac/#documentation/Cocoa/Conceptual/ - person Sulthan; 08.05.2012
comment
@Sulthan: есть законные причины для предоставления пользователю кода ошибки, и при этом на Mac вам также необходимо указать домен (в противном случае код ошибки -1, 400 или 25 может означать что угодно.) - person Jonathan Grynspan; 08.05.2012