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

问题描述 投票:4回答:3

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

到目前为止我尝试过的:

我确实按照Apple文档here the link to the part where it comes to creating and additional settings page file的教程进行操作。

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

问题:

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

一开始,一切都很好:

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

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

iphone ios plist appsettings settings.bundle
3个回答
2
投票

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

一个例子:

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

如果不是,则必须使用值PSGroupSpecifier作为described in the Documentation.

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

  1. 您是否将引用的pList命名为Childpane文件规范中指定的相同而不添加.plist?
  2. 您是否使用Finder将引用的pList移动​​到Settings包中?
  3. 您是否检查了引用的元素是否使用了descripted in the documentation(PSGroupSpecifier而不是Group)的确切值?当XCode不允许您更改属性列表类型时,这一点尤其重要...
  4. 是否有任何您未添加到元素中的必需元素?如果是,它将不会显示...
  5. 认为你做的一切都是正确的,它只是没有显示出来?从设备中删除应用程序并清理构建。

0
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.