使用plists的嵌套设置:创建其他设置页面在iOS中不起作用

时间:2013-03-21 10:04:55

标签: iphone ios plist appsettings settings.bundle

我正在尝试使用pLists和Xcode 4.6来实现我的应用设置的嵌套结构。

到目前为止我尝试了什么:

我的确遵循了Apple文档中的教程here the link to the part where it comes to creating and additional settings page file

我添加了一个包含不同项目的设置包,效果很好。说到我的子窗格,我使用文件名“子设置”引用了一个文件,并使用Finder到我的设置包添加了一个plist childsetting.plist。

问题:

当我控制点击我的plist并从Property列表中选择“iPhone Settings plist”时,它将不接受我的选择。

enter image description here

起初,一切都很好看:

enter image description here

但是在单击其他文件并单击返回my childsetting.plist后,Root元素仍然是Root而不是“iPhone Settings Schema”。

enter image description here

编辑XML源代码,清理和构建项目,重新启动XCode或重新安装应用程序不起作用。它总是回到同样的问题: Childpane是空的。看起来pList找不到 - 我猜是因为它不被识别为iPhone设置架构。

3 个答案:

答案 0 :(得分:2)

显然我的pList被找到了,即使XCode没有说“iPhone设置架构”。我的问题是值未正确设置。重要的是要知道XCode为您的值填写“快捷方式”,但将更具体的值放入源XML中。这就是为什么你必须查看文档是否使用正确的标识符。

示例:

添加组元素将显示值“Group”。如果XCode将您的pList识别为设置架构,那么这确实有效。

enter image description here

如果没有,则必须将值 PSGroupSpecifier 用作described in the Documentation.

enter image description here

此外,放入所有必需的值非常重要,否则您的子窗格将无法显示。因此,如果您的嵌套设置有任何问题,请不要显示,请尝试按照以下步骤进行修复:

  1. 您是否将引用的pList命名为Childpane文件规范中指定的名称,而不添加.plist?

  2. 您是否使用Finder将引用的pList移动​​到“设置”包中?

  3. 您是否检查过引用的元素是否使用精确值descripted in the documentation(PSGroupSpecifier而不是Group)?当XCode不允许您更改属性列表类型...

  4. 时,这一点尤为重要
  5. 是否有任何您未添加到元素中的必需元素?如果是,它将不会显示...

  6. 你认为你做的一切都是正确的,它只是没有显示出来吗?从设备中删除应用程序并清理构建。

答案 1 :(得分:0)

哦,我想我解决了。 文件类型不会真正影响设置应用程序的行为。 我从设备/模拟器中删除了我的应用程序,然后重新安装。 现在,设置应用程序正确显示嵌套页面,甚至文件类型也不是Xcode窗口中的“iPhone设置plist”。

答案 2 :(得分:0)

这些解决方案都不适合我 - 最终成为我的问题的是我的文件名为ChildPane.plist而不是ChildPane。事实证明它也是documented here