2015-02-13 3 views
0

При профилировании на симуляторе я заметил, что каждый раз, когда я сохраняю NSNumber в NSUserDefaults, это занимает много времени, около 600 мс на экземпляр. Это нормально? У меня есть около 5 из этих объектов, которые мне нужно сохранить, так что в итоге требуется 3000 мс, что очень длительное время.NSUserDefaults setObject: forKey: очень дорогое время

Я использую следующую строку:

[[NSUserDefaults standardUserDefaults] setObject:object forKey:@"key"]; 
+0

Показать код. – rmaddy

+0

как вы пришли с 600 мс? Я бы хотел увидеть эту логику. Кроме того, сохранение 5 не является прямым умножением 600 x 5. Это почти никогда не происходит на оборудовании компьютера/устройства. –

+0

Это ужасное выступление, вы уверены, что тест действительно? – gabbler

ответ

1

Сколько вещи в ваших предпочтениях? Пользовательские настройки не являются базой данных. Там есть предел тому, что вы должны там хранить. И я надеюсь, вы понимаете, что вам не нужно синхронизировать сразу после хранения каждого отдельного элемента в настройках, поэтому сохранение пяти элементов не должно занимать больше времени, чем его сохранение.

+0

У меня нет объектов в настройках. Что вы имеете в виду синхронизация в данном случае? Я сохраняю с [[NSUserDefaults standardUserDefaults] setObject: object forKey: @ "key"]; – Nilsymbol

+0

Оказывается, вы были правы, я сохранял огромный объект, о котором я не знал, в мои настройки по умолчанию. Удаление из него сделало все остальное очень быстрым. – Nilsymbol

Смежные вопросы