Тест self = [super init]; if (self)
состоит в том, что некоторые инициализаторы возвращают разные объекты, включая nil
, если невозможно создать объект, удовлетворяющий условию, требуемому инициализатором.
В вашем собственном инициализаторе вам необходимоДелайте это, защищаясь от суперкласса, потому что если вы пытаетесь получить доступ к переменной экземпляра на nil
, вы определенно делаете не то, что нужно (независимо от того, произойдет ли это в результате или нет: обычно это произойдет).