Насколько эффективно получить целое число из standardUserDefaults напрямую? - PullRequest
0 голосов
/ 03 апреля 2012

Возможно, это глупый вопрос, но в нашем приложении для iOS мы храним целое число для предпочтения цвета пользовательского интерфейса.В drawRect пользовательского представления мы в настоящее время получаем это значение предпочтения и используем его для установки определенного UIColor для некоторого текста, который рисуется.

Я понимаю, что значения standardUserDefaults кэшируются, но это неэффективный способделать вещи?Должны ли мы вместо этого добавить локальный ivar в пользовательское представление и получить значение предпочтения в init, а затем зарегистрироваться для уведомления об изменении значений по умолчанию, чтобы значение могло быть обновлено?

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Как отмечалось здесь: Доступ к NSUserDefaults Часто , если вы не оптимизируете внутренний цикл, который вызывается миллион раз в секунду, вам вообще не нужно об этом беспокоиться.

Также, наверное, плохая идея задавать себе такие вопросы, это называется преждевременной оптимизацией, и мы все знаем, что это корень всего зла. Если вы хотите знать реальные ответы, поместите весь код в правильный контекст (так что вам в основном нужно закончить все приложение) и используйте профилировщик. В большинстве случаев вы увидите, что узкое место - это то, чего вы не ожидаете.

0 голосов
/ 03 апреля 2012

Используйте профилировщик времени и посмотрите, где время тратится в вашем методе рисования. Я сомневаюсь, что получение значения по умолчанию является узким местом производительности по сравнению с любым рисунком, который вы фактически делаете с самим цветом.

Не делайте ваш код более сложным, чем это должно быть без веской причины.

...