首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Settings.bundle

如何使用Settings.bundle
EN

Stack Overflow用户
提问于 2013-03-11 17:32:26
回答 1查看 1.2K关注 0票数 0

我正在用最新的SDK开发一个iOS应用程序。

我已经创建了一个带有Settings.bundleRoot.plist和另外四个.plist,并且这些文件上的每个设置都有每个默认值。

这是我第一次和Settings.bundle合作,我迷路了。我发现了这个question,他们说我每次运行应用程序时都必须读取Settings.bundle默认值,我不明白为什么。

我认为我必须在这里继续使用NSUserDefaults读取设置值。

我有以下问题:

  1. 如何使用设置应用程序读取这些设置上设置的值?
  2. 如何知道用户是否更改了这些值中的一个或多个?用户让应用程序去后台,打开设置应用程序,并改变一些东西。我怎么能以编程的方式知道呢?
  3. 如何保存任何修改(设置值中的更改)并在Settings应用程序上查看更改?

顺便说一句,现在我有了这个代码:

代码语言:javascript
运行
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.

    // Set the application defaults
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if (![defaults boolForKey:@"firstRun"])
    {
        NSDictionary *appDefaults = [PreferenceDefaultValues dictionary];
        [defaults registerDefaults:appDefaults];

        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstRun"];

        [defaults synchronize];
    }

    return YES;
}
EN

回答 1

Stack Overflow用户

发布于 2013-03-11 18:17:10

  1. 可以使用identifier访问Settings.bundle plist中任何首选项的NSUserDefaults。例如,如果您有一个名为allowDiagnostics的首选项,那么您可以使用[NSUserDefaults standardUserDefaults] boolForKey:@"allowDiagnostics"]访问该项的值(假设它是一个BOOL项)。
  2. 您可以使用NSUserDefaultsDidChangeNotification获得对您的首选项的任何更改的通知。
  3. 就像你读它们一样。要继续1的示例,[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"allowDiagnostics"]。但是请注意,允许用户从多个地方(Settings.bundle和应用程序中的某个位置)更改选项,可能会让用户感到困惑。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15344884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档