我使用核心数据来保存动态(小)数量的实体。这些实体具有“显示”和“推送”属性,我与每个实体的服务器同步。
现在我想添加InApp-Settings,以便用户可以在核心数据实体中更改这两个设置。
因为行为和外观应该像Settings.app一样,我想在这种情况下使用InAppSettingsKit-Project。
正如我读到的,这个库允许实现自定义SettingsStore来保存核心数据中的值,但我也需要从核心数据中读取实体和设置。在我看来,无法定义自己的子类IASKSettingsReader以供使用。
接下来的问题是,我想在顶层使用plist来显示主要设置,然后在设置的子级别上显示我自己的商店。
示例:
-> Display Settings (From plist)
--> List of entities with my own reader and store to show toggles
-> Push Settings (From plist)
--> List of entities with my own reader and store to show toggles
-> Version (From plist)
-> About (From plist)
如果不从头开始编写整个设置(这会非常痛苦和不灵活),是否有可能实现这一目标?
感谢您提前让我走向正确的方向!
------ ------ EDIT
我认为一个可能的解决方案是,在app-start上以InAppSettingsKit所需的格式保存自定义plist,在子菜单中将它们作为此childpane的源读取,将自定义SettingsStore的设置保存到plist中并在同步方法中将数据保存回核心数据。
您如何看待这种方法?
答案 0 :(得分:1)
您描述的方法听起来很合理。您必须调整逻辑来设置plist的路径(-locateSettingsFile:
)。还应该可以编写IASKSettingsReader
的替换来动态设置字段定义。或者,您可以直接修改IASKSettingsReader.dataSource
属性(未经测试,只是一个想法)。
答案 1 :(得分:0)
我已经实现了我在编辑问题时描述的方法。
整个方法都是这样的:
正如Ortwin Gentz所提到的,可以编写自己的IASKSettingsReader。但我认为我的方法需要更少的工作,我不需要在IASKSettingsKit中处理不同的源类型。