Это общий вопрос об обработке возможных ошибок, когда NSError не используется.
Допустим, у нас есть типичный код iOS/Cocoa, подобный этому:
NSXMLParser *parser = [[NSXMLParser alloc] initWithData: myData];
В документации указано, что будет возвращен объект NSXMLParser или «ноль, если произойдет ошибка».
(Для справки, этот конкретный метод с радостью примет nil в качестве аргумента «данные», возвращая действительный экземпляр NSXMLParser.)
Я заметил, что очень многие разработчики iOS никогда не проверяют эти типы возвращаемых значений. Они предполагают, что класс init работал всегда. Это кажется мне рискованным, но я хотел бы услышать мнение опытных/укушенных разработчиков Cocoa.
Если я использую NSAssert для возвращаемого значения, это защищает меня во время разработки, но мало что дает мне, когда мое приложение находится в свободном доступе.
Должен ли я проверять возвращаемое значение nil и создавать собственный NSError? Или сделать что-то еще?