Самым большим преимуществом NSUserDefaults является то, что вам не нужно беспокоиться о фактической записи на «диск» & mdash; -synchronize
автоматически вызывается в «подходящее время», что включает в себя фон приложения (если многозадачность поддерживается) или завершение (если многозадачность не поддерживается, или вы устанавливаете UIApplicationExitsOnSuspend или как там его называют). Это означает, что вы можете обновлять NSUserDefaults гораздо чаще, без лишних затрат.
Недостатком является то, что я почти уверен, что все это загружено в память, а запись включает запись всего файла (я думаю, что он даже записывает во временный файл, а затем выполняет переименование), поэтому он не подходит для хранения большие, редко меняющиеся пятна (например, фотографии).
Если ваши сохраненные игры не очень большие, я бы сделал что-то простое с NSUserDefaults, главным образом потому, что вам не нужно отслеживать кучу файлов.
РЕДАКТИРОВАТЬ: Потенциально существенным недостатком NSUserDefaults является то, что он не сохраняет в случае сбоя приложения, поэтому вам все равно может понадобиться явное -synchronize
время от времени, в зависимости от степени сбоя вашего приложения. Это особенно заметно для разработчиков, поскольку нажатие кнопки «Стоп» в Xcode (или отключение телефона во время отладки) фактически приводит к сбою!