Таким образом, данные легко доступны, но также сохраняются на диск для безопасного хранения.

есно, для чего предназначены инструкции:
1 - как часто я могу читать из NSUserDefaults
2 - сколько данных я могу разумно хранить в NSUserDefaults

Очевидно, что существуют пределы того, сколько NSUserDefaults можно использовать, но у меня возникают проблемы с определением того, что является разумным, а что нет.

Некоторые примеры среди других:

Если в моей игре есть возможность, чтобы компьютер был одним из игроков, я буду использовать NSUserDefaults для сохранения этого логического значения. Это очень ясно. Но также имеет ли смысл обращаться к NSUserDefaults во время моей игры каждый раз, когда я хочу узнать, является ли компьютер игроком, или я должен вместо этого использовать переменную экземпляра? Предположим, здесь мне нужно проверять это логическое значение каждую секунду. Ответ тот же: вместо 100 мс? Как насчет каждые 10 с?

Если в моей игре 50 движущихся объектов, и я хочу, чтобы их позиции и скорости сохранялись при выходе из приложения, является ли NSUserDefaults разумным местом для хранения этих данных? Как насчет 20 движущихся объектов? Как насчет 200?