Вы должны использовать -removeObjectForKey:
вместо настройки NULL
.Первый - это официальный способ удаления значений, а второй - недокументированное поведение.
В любом случае, если использование -removeObjectForKey:
не работает, вы можете добавить вызов к
[[NSUserDefaults standardUserDefaults] synchronize];
в конце.Но делайте это только в том случае, если это не работает без него.Причина в том, что вызов -synchronize
(относительно) дорогой, поэтому его следует выполнять только тогда, когда это необходимо для обеспечения правильности.
После еще одного взгляда, я подозреваю, что ваша настоящая проблема заключается в том, что этот метод неТ звонят вообще.В iOS 4 и более поздних версиях, когда приложения входят в фоновый режим, они не вызывают этот метод, вместо этого они вызывают -applicationDidEnterBackground:
.Вы должны попробовать поместить этот код вместо этого.