Замедляет ли использование синхронизации вычисления?
Да, абсолютно. synchronize
записывает текущие значения пользователя по умолчанию на диск.
я должен использовать метод -synchronize каждый раз, когда пишу в nsuserdefaults?.
Нет, абсолютно нет. Если у вас длинный цикл, где вы меняете пользовательские настройки по умолчанию, значения сохраняются в памяти. Это не испортит ваши расчеты. Необходимо сохранить на диск только после завершения цикла.
synchronize
обычно делается:
- вручную, прежде чем приложение будет закрыто или отправлено в фоновый режим
- автоматически системой каждые несколько минут
- вручную программой после внесения некоторых важных изменений, которые вы не хотите рисковать в случае сбоя или внезапного отключения питания.
В вашем случае после длинного цикла вы хотите сделать это по причине 3.
Делая это каждый раз внутри цикла, вы просто без необходимости записываете значения во флэш-память, которые вы, вероятно, сразу же перезаписываете.