Да, но это немного отличается от того, что вы делаете. NSUserDefaults имеет метод registerDefaults
, который позволяет заполнять «пустые» значения по умолчанию из NSDictionary указанными вами значениями. Поместите это в метод + initialize вашего контроллера приложения, и вы поймете, что значения по умолчанию разумны. Если объект по умолчанию пользователя находит «реальное» значение ключа, которое вы установили во время текущего запуска приложения или загрузили с диска, оно всегда будет иметь приоритет над тем, что вы указали в registerDefaults
. resetStandardUserDefaults
удалит объект общих пользовательских настроек по умолчанию из памяти и отменит все настройки, которые вы сделали для него, вам не нужно предоставлять значения по умолчанию.
Кроме того, имейте в виду, что вы не можете просто привести объект к примитивному значению NSInteger, как вы делаете, вы просто получите число, представляющее ячейку памяти указателя объекта. Либо используйте NSUserDefault integerForKey:
для непосредственного получения примитива, либо используйте objectForKey:
для получения NSNumber и используйте integerValue
для получения значения примитива.