我正在制作一个应用程序,其中我添加了设置(nsuserdefaults)
问题出在我的主视图 Controller 中,我声明了用户默认值并获取了它的值。 但是,由于在用户进入设置并返回应用程序后不会调用 viewdidload。 我的设置没有更新。
我尝试在应用委托(delegate) applicationwillenterforeground 中声明用户默认值 但是我将如何将消息传递给 mainviewcontroller。
应用程序委托(delegate)中定义的变量在 mainviewcontroller 中无法识别。
更新:我已经声明了
- (void)applicationWillEnterForeground:(UIApplication *)application
{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
}
我在具有标识符 enabled_preference 的设置中有切换开关,所以我写了
else
{
[PlaySound prepareToPlay];
[prefs setBool:YES forKey:@"enabled_preference"];
BOOL loop = [prefs boolForKey:@"enabled_preference"];
NSLog(@" %d",loop);
do {
[PlaySound play];
} while (loop ==YES);
它在控制台中记录 0 但是我在 plist 中将默认设置为 yes
最佳答案
如果将对象设置为 NSUserDefaults,则可以在应用程序的任何位置使用。无需在 appDelagate 中创建对象...
[[NSUserDefaults standardUserDefaults] setObject:@"Ramu" forKey:@"iCustomerId"];
[[NSUserDefaults standardUserDefaults] synchronize];
您可以使用下面的行在整个应用程序中获取该值
[[NSUserDefaults standardUserDefaults] valueForKey:@"iCustomerId"]
关于iphone - NSUserdefaults 全局默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8427343/