Первое, что делает мое приложение при запуске, - регистрирует значения по умолчанию для своих настроек:
// Load default defaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults registerDefaults:[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Defaults" ofType:@"plist"]]];
[defaults synchronize];
Defaults.plist выглядит так:
<key>WorkingHoursFriday</key>
<integer>28800</integer>
<key>WorkingHoursMonday</key>
<integer>28800</integer>
<key>WorkingHoursSaturday</key>
<integer>0</integer>
Отображение правильных значенийпозже, когда выводит словарь значений по умолчанию :
WorkingHoursFriday = 28800;
WorkingHoursMonday = 28800;
WorkingHoursSaturday = 0;
Корректные значения также возвращаются при извлечении их специально с помощью [defaults floatForKey:@"WorkingHoursSaturday"];
и т. д.
ОднакоПриложение настроек отображает неправильное время для этих настроек.Вот часть моего Root.plist в Settings.bundle:
<dict>
<key>Type</key>
<string>PSMultiValueSpecifier</string>
<key>Title</key>
<string>Monday</string>
<key>Key</key>
<string>WorkingHoursMonday</string>
<key>DefaultValue</key>
<integer>28800</integer>
<key>Titles</key>
<array>
<string>Free</string>
<string>8 Hours</string>
...
</array>
<key>Values</key>
<array>
<integer>0</integer>
<integer>28800</integer>
...
</array>
</dict>
<dict>
<key>Type</key>
<string>PSMultiValueSpecifier</string>
<key>Title</key>
<string>Friday</string>
<key>Key</key>
<string>WorkingHoursFriday</string>
<key>DefaultValue</key>
<integer>28800</integer>
<key>Titles</key>
<array>
<integer>Free</integer>
<integer>8 Hours</integer>
...
</array>
</dict>
<dict>
<key>Type</key>
<string>PSMultiValueSpecifier</string>
<key>Title</key>
<string>Saturday</string>
<key>Key</key>
<string>WorkingHoursSaturday</string>
<key>DefaultValue</key>
<integer>28800</integer>
<key>Titles</key>
<array>
<string>Free</string>
<string>8 Hours</string>
...
</array>
<key>Values</key>
<array>
<integer>0</integer>
<integer>28800</integer>
...
</array>
</dict>
А вот скриншот приложения настроек.WorkingHoursSaturday установлен в 0, но таблица настроек по-прежнему показывает 8 часов:
Хостинг imgur.com
Чего мне не хватает?
Редактировать : Как только я установил WorkingHoursSaturday в коде, вызвав [defaults setInteger:0 forKey:@"WorkingHoursSaturday"];
, Settings.app покажет правильное значение.Может быть, звонок на registerDefaults
как-то неверен?