Я преобразовал бы их в целое число (HH*3600 + MM*60) и сохранил бы его тот путь. Небольшой размер ресурса хранения, и все еще достаточно легкий работать с.
NSUserDefaults может не иметь возможности сохранения в зависимости от того, как завершается процесс.
Этот ответ содержит дополнительную информацию: Почему NSUserDefaults не сохраняет мои значения?
Я решил отложить эту проблему и продолжить разработку, которая включала добавление вещей после пятого уровня, чтобы пользователь мог проходить уровни и возвращаться в главное меню и так далее, и так далее ... и Я не уверен, почему, но userDefaults сейчас сохраняются для пятого уровня, поэтому я не знаю, потому что до пятого уровня приложение было последним, и хотя оно не завершало само себя и выполняло другие действия, возможно, оно на самом деле не записывал значения по умолчанию на диск ... Я все еще не уверен, что было не так, но теперь он работает, и я не могу заставить его не проверить, могу ли я получить ошибку при синхронизации ...
Спасибо за помощь
Где-то у вас есть что-то вроде:
// load the default values for the user defaults
userDefaultsValuesPath=[[NSBundle mainBundle] pathForResource:@"UserDefaults" ofType:@"plist"];
userDefaultsValuesDict=[NSDictionary dictionaryWithContentsOfFile:userDefaultsValuesPath];
// set them in the standard user defaults
[[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsValuesDict];
Если исходные значения по умолчанию, которые вы устанавливаете, не имеют значений по умолчанию для LevelFive, тогда вызовы не будут выполнены.
Проверьте возвращаемое значение из -synchronize на наличие ошибок.