В чем разница в использовании методов firstObject vs objectAtIndex: 0?

Сегодня я проверил использование firstObject и objectAtIndex: 0. Если массив имеет размер 0, использование первого не вызывает сбоя, а последний вызывает сбой. Поэтому я думаю, что лучше использовать firstObject, чем objectAtIndex: 0. Но есть ли недостатки в использовании firstObject над objectAtIndex: 0?

Я также читал документацию NSArray, и я удивлен и задаюсь вопросом, почему они не упомянули об этом факте в документации.

Ответ 1

Существует одна разница . Использование firstObject возвращает nil, если его нет. Использование objectAtIndex:0 приведет к сбою вашего приложения (выдает исключение), если там нет объекта. С точки зрения пользователя, сбой сильно защищен, поэтому безопаснее использовать firstObject.

НО самая большая ошибка: firstObject была доступна с iOS 4, но была частным API до iOS 7.