Quando (não) abusar do NSUserDefaults

Gostaria de saber para que servem as diretrizes:
1 - com que frequência posso ler de NSUserDefaults
2 - quantos dados posso armazenar razoavelmente no NSUserDefaults

Obviamente, existem limites para quanto NSUserDefaults pode ser usado, mas tenho problemas para determinar o que é razoável e o que não

Alguns exemplos entre outros:

Se meu jogo tiver a opção de o computador ser um dos jogadores, usarei o NSUserDefaults para salvar esse valor booleano. Isso está claro. Mas também é razoável acessar os NSUserDefaults durante o meu jogo toda vez que eu quiser saber se o computador é um jogador ou devo usar uma variável de instância para isso? Suponha aqui que eu preciso verificar esse booleano a cada segundo. A resposta é a mesma: 100 ms? E a cada 10 s?

Se meu jogo tiver 50 objetos em movimento e desejar que suas posições e velocidades sejam armazenadas quando o usuário sair do aplicativo, o NSUserDefaults é um local razoável para armazenar esses dados? Que tal 20 objetos em movimento? Que tal 200?

questionAnswers(5)

yourAnswerToTheQuestion