Нет и NSArrays не заканчиваются нулем.
Что требует nil, так это инициализация массива с набором объектов с использованием arrayWithObjects: или initWithObjects: Здесь nil требуется, чтобы сообщить во время выполнения, когда список объектов заканчивается, как это происходит с любой функцией аргументов переменной C, например, используя va_args