Краткий ответ - нет, пользователь не может изменить значения, сохраненные в NSUserDefaults.
Средний ответ, значения сохраняются в файле plist, который виден в виде обычного текста, если устройство подключено и у вас есть рабочая копия Xcode.Или каким-либо другим способом через джейлбрейк, но это, как правило, не представляет проблемы.
Что касается комментариев в принятом ответе об использовании брелка iOS, пользователь также не может изменить это.Вы можете найти множество примеров, показывающих, как сохранить имя пользователя и / или пароль с помощью файлов KeychainWrapper, предоставленных Apple.Недавно я преобразовал свое приложение из соленого / хешированного токена, сгенерированного из имени пользователя и пароля, для хранения их непосредственно в цепочке для ключей.Я думаю, что в конечном итоге это самый безопасный и безопасный способ хранения учетных данных пользователя.В любом случае, на мой взгляд.