3

我在访问 Settings.bundle 时遇到问题。

让我解释一下我到底在做什么。

  1. 来自文件的任何类型的新项目模板(在 iPhone OS 下) - 最好基于视图。
  2. 现在右键单击您的项目/资源组。
  3. 选择添加/新文件
  4. 在 iPhone 操作系统 - 资源 - 设置包下。
  5. 严格命名为“Settings.bundle”

现在非常重要的步骤。

  1. 在您的项目中展开 Settings.bundle。
  2. 点击 Root.plist
  3. 在编辑器中 - 展开首选项说明符
  4. 删除第 2 项、第 3 项、第 4 项
  5. 选择第 1 项并复制并粘贴它。
  6. 编辑项目 2' 类型(项目 1 的副本)
  7. PSChildPaneSpecifier设置为类型(属于 item'2 )
  8. 根据需要设置标题。
  9. 向此(第 2 项)字典添加一个新的键值对。
  10. 设置键=“文件”和字符串=“字体设置”

现在在上面的步骤中,我已经指定“我需要一个子窗格进行设置”&子窗格设置将从FontSettings.plist加载

行。进一步的步骤。

  1. 现在,右键单击您的 Settings.bundle / en.lproj(只是因为我们需要在 settings.bundle 下添加另一个 plist 文件。
  2. 添加/新建文件 - 在 Mac OS x 下 - 选择其他 -> 属性列表
  3. 名称为FontSettings.plist

仅用于验证 settings.bundle 是否包含该文件。

  1. 在 finder 中打开您的项目。
  2. 右键单击Settings.bundle
  3. 单击显示包内容。
  4. 如果它在包内容中显示FontSettings.plist ,那么到目前为止它是完美的。

现在,对于 FontSettings.plist

  1. 打开 settings.bundle 下的 Root.plist。
  2. 将 Stringtable、PreferenceSpecifiers 复制到 FontSettings.plist
  3. 现在在FontSettings.plist - 根据需要添加设置。

签入模拟器。

  1. 运行程序并点击按钮。(终止应用程序。)
  2. 前往设置。
  3. 打开您的项目设置
  4. 您可以转到子窗格。

到目前为止,我相信我已经遵循了正确的步骤。

我现在面临的问题就在这里。

如果只有一个Root.plist,我们可以直接访问

[[NSUserDefaults standardUserDefaults] stringForKey:@"fName"]

如上。

但问题是“如何访问-子窗格设置?”

我试过以下方式

NSString *str=[[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"bundle"];
NSString *path=[str stringByAppendingPathComponent:@"FontSettings.plist"];
NSDictionary *dFor=[NSDictionary dictionaryWithContentsOfFile:path];

但是上面代码中的问题是“它只是每次都给我相同的默认值,即使在 - 从 iPhone 的设置中更改值 - 设置之后也是如此。

访问 Child.plist 设置应该怎么做?(该用户已设置)。

4

1 回答 1

5

您可以像访问根设置一样访问子窗格设置。访问用户默认值的层次结构之间没有区别。

例如,如果 FontSettings.plist 中的 PSToggleSwitchSpecifierKeyisBold,那么您将使用

[[NSUserDefaults standardUserDefaults] boolForKey:@"isBold"]
于 2010-03-02T10:40:44.920 回答