Создайте экземпляр NSUserDefaults с +alloc
& -init
вместо использования +standardUserDefaults
.Созданный таким образом экземпляр пользователя по умолчанию не будет создан с доменом по умолчанию, соответствующим идентификатору основного пакета, поэтому вам нужно использовать метод -addSuiteNamed:
, чтобы вручную добавить к нему домен по умолчанию.
( Обновление ) Извините, мой плохой!Наборы являются нестабильными, а не постоянными - полезны для инструментов, которым необходимо считывать общий набор значений по умолчанию, не так много для приложения, которое хочет установить значение по умолчанию.Для последнего взгляните на -setPersistentDomain:forName:
.Ключи в словаре домена определяют, какие ключи принадлежат указанному домену по умолчанию, а значения предоставляют свои значения по умолчанию.
Вот краткий пример, который должен создать ~ / Library / Defaults / com.shermpendley.DefaultsTest.plist и сохраните в нем указанную пару ключ / значение:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSUserDefaults *defaults = [[NSUserDefaults alloc] init];
[defaults setPersistentDomain:[NSDictionary dictionaryWithObject:@"Hello" forKey:@"World"] forName:@"com.shermpendley.DefaultsTest"];
[defaults synchronize];
[defaults release];
[pool drain];
return 0;
}