Чтобы уточнить ответ dasblinkenlights, это объявление переменной:
NSError *error;
... и это объявляет И присваивает переменную
NSError *error = nil;
Когда вы используете его первым способом и пытаетесь получить к нему доступ, не устанавливая его для чего-либо, значение, на которое оно указывает, называется «мусором». Это указатель на какой-то другой стек памяти, и доступ к нему почти всегда заставляйте ваше приложение падать. Таким образом, всегда лучше присваивать значение вашей переменной, как указано выше, или вскоре после этого.