iPhone имеет гораздо меньше памяти, чем ваш компьютер. Область в стеке для стека могла бы быть установлена на 0x00 (ноль) перед использованием функцией initWithObjects. Когда параметры отправляются в функцию initWithObjects и стек распределяется, это пространство памяти на компьютере с большей вероятностью будет установлено на 0x00, чем на iPhone, потому что это же пространство памяти используется реже. Таким образом, вполне вероятно, что ноль читается из области памяти, уже установленной в 0.
Если вы заполнили свою память на своем компьютере, а затем запустили симулятор, симулятор, скорее всего, потерпит крах, как iPhone.