我为自己的应用创建了偏好设置面板。我使用首选项窗格将一些基本设置存储到userdefaults中。我无法从应用程序访问这些设置值。
将设置保存为用户默认值,如下所述:
NSString *fooBar = @"settings_value";
NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults];
[userDef setObject:fooBar forKey:@"app_setting"];
[userDef synchronize];
现在,当我从应用程序访问它时:
NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults];
NSString *svcEnv = [userDef objectForKey:@"app_setting"];
我得到零值。但是当从首选项窗格项目访问时,我将获得设置值,但不会在应用程序中。
如何在应用程序中检索设置值?
答案 0 :(得分:1)
[NSUserDefaults standardUserDefaults]返回当前应用程序的默认值,在首选项窗格的情况下,系统首选项应用程序。相反,您需要使用具有捆绑包标识符的域的首选项,该捆绑包包含您的首选项窗格的类:
NSUserDefaults *suds = [NSUserDefaults standardUserDefaults];
NSString * bundleID = [[NSBundle bundleForClass:[self class]] bundleIdentifier];
NSMutableDictionary *prefs = [[suds persistentDomainForName:bundleID] mutableCopy];
要将它们保存回来使用:
[suds setPersistentDomain:prefs forName:bundleID];
[sud synchronize];
答案 1 :(得分:0)
您应该使用stringForKey:
NSString *svcEnv = [userDef stringForKey:@"app_setting"];