我在访问 Settings.bundle 时遇到问题。
让我解释一下我到底在做什么。
- 来自文件的任何类型的新项目模板(在 iPhone OS 下) - 最好基于视图。
- 现在右键单击您的项目/资源组。
- 选择添加/新文件
- 在 iPhone 操作系统 - 资源 - 设置包下。
- 严格命名为“Settings.bundle”
现在非常重要的步骤。
- 在您的项目中展开 Settings.bundle。
- 点击 Root.plist
- 在编辑器中 - 展开首选项说明符
- 删除第 2 项、第 3 项、第 4 项
- 选择第 1 项并复制并粘贴它。
- 编辑项目 2' 类型(项目 1 的副本)
- 将PSChildPaneSpecifier设置为类型(属于 item'2 )
- 根据需要设置标题。
- 向此(第 2 项)字典添加一个新的键值对。
- 设置键=“文件”和字符串=“字体设置”
现在在上面的步骤中,我已经指定“我需要一个子窗格进行设置”&子窗格设置将从FontSettings.plist加载
行。进一步的步骤。
- 现在,右键单击您的 Settings.bundle / en.lproj(只是因为我们需要在 settings.bundle 下添加另一个 plist 文件。
- 添加/新建文件 - 在 Mac OS x 下 - 选择其他 -> 属性列表
- 名称为FontSettings.plist
仅用于验证 settings.bundle 是否包含该文件。
- 在 finder 中打开您的项目。
- 右键单击Settings.bundle
- 单击显示包内容。
- 如果它在包内容中显示FontSettings.plist ,那么到目前为止它是完美的。
现在,对于 FontSettings.plist
- 打开 settings.bundle 下的 Root.plist。
- 将 Stringtable、PreferenceSpecifiers 复制到 FontSettings.plist
- 现在在FontSettings.plist - 根据需要添加设置。
签入模拟器。
- 运行程序并点击按钮。(终止应用程序。)
- 前往设置。
- 打开您的项目设置
- 您可以转到子窗格。
到目前为止,我相信我已经遵循了正确的步骤。
我现在面临的问题就在这里。
如果只有一个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 设置应该怎么做?(该用户已设置)。