ios - 设置捆绑默认值不会设置

标签 ios objective-c nsuserdefaults settings.bundle

我有一个带有 settings.bundle 的 iOS 应用程序,它使用 Switch toggle 处理我的应用程序的各种设置。我将我的 root.plist 文件中的默认值(使用 DefaultValue 属性)设置为 YES,但只要应用程序在设备或 iOS 模拟器上启动,所有值都会变为 NO。它仅在首次发布时运行良好。

Settings Bundle PLIST

我正在使用此代码检索默认值(我在这里做错了什么吗?):

NSUserDefaults *localeDefaults = [NSUserDefaults standardUserDefaults];
BOOL ENWORDS = [localeDefaults boolForKey:@"localetime"];

最佳答案

默认值仅供 Settings.app 用于显示目的。如果您不更改设置应用程序中的值,则不会将任何内容保存到 NSUserDefaults。

您必须自己注册默认值。在 application:didFinishLaunchingWithOptions::

中使用类似的东西
NSDictionary *userDefaultsDefaults = [NSDictionary dictionaryWithObjectsAndKeys:
                                      [NSNumber numberWithBool:YES], @"localetime",
                                      nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsDefaults];

关于ios - 设置捆绑默认值不会设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9181544/

相关文章:

javascript - 如何确定 iOS 上 Safari 崩溃的原因?

iphone - objective-c 中的 "Testing Class Equality"

objective-c - 将 NSImage 绘制到 NSView 子类中

objective-c - 创建 UIImage 抠图

ios - 如何在用户默认设置中保存特定的View Controller?

ios - 在 UICollectionView 的两个方向上无限滚动,带有部分

ios - nil-coalescing 运算符导致编译器报告歧义

iOS 10 UNNotificationAction,可以从后台模式切换到前台模式吗?

ios - 如何通过代码设置初始 View Controller ?

ios - 在 UserDefaults 中存储数据