хм ... это определенно хороший вопрос, я бы хотел его решить.Я не эксперт в объективе-c, но я постараюсь высказать свое мнение, не боясь downvoter :-)
Я чувствую ваше разочарование, но:
err, yeah, well there's instances where it can fail, so that's why.
Этосовершенно хороший ответ.Я думаю, что вы не проверяете себя, но вы проверяете, правильно ли инициализирован супер объект, для меня это другая точка зрения.
Я полагаю, что в любом случае всегда полезно проверить, правильно ли был выделен и инициализирован объект, особенно в target-c, который находится на вершине C со всеми проблемами выделения памяти в маскараде.Инициирование происходит после 'alloc', и предполагается, что выделенный объект инициализируется переменными и т. Д. *
Например, в таких языках, как Java, где цепочка конструкторов хорошо определена и проверена компилятором, в случае неудачисоздание объекта приведет к ошибке нулевого указателя при последующем использовании этого объекта.Зачастую размещение объекта в Java безошибочно, но часто использование методов должно быть окружено специальным блоком ошибок try / catch.Поэтому проверка выполняется позже в жизненном цикле приложения.
В target-c вместо этого у вас может быть нулевой объект по многим причинам, и если нет сбоя приложения, вы можете прекратить отправку сообщения недопустимому объекту.Я должен быть честным, когда создаю экземпляр непосредственно из подкласса NSObject, я не знаю полезности проверки nil.Но если я расширяю класс в фреймворке или статической библиотеке, предоставляемой другими, я бы определенно чувствовал себя в безопасности с проверкой правильности объекта.