Я знаю, это звучит рекурсивно, но я думаю, что в этом случае лучше всего вернуть ноль.
Вы не можете предсказать состояние объекта при получении значения nil, возвращаемого инициализатором, поэтому самое безопасное - просто избавиться от объекта. Из инициализатора это означает просто возвращение nil вызывающей стороне.
При выделении] инициации мне всегда казалось, что эта ситуация приведет к утечкам, поэтому я всегда колебался просто вызывать выделение] инициации] вслепую.