我正在为一个项目做设计并且没有实现 - 所以我仍然会通过思考过程来确定核心数据是否适用于该项目。
这是我的查询 -
我想使用Core Data创建一个托管对象模型来表示一些服务器端对象,例如Folder,File等.... 所有对象(文件夹,文件等)都可以通过XMLRPC API访问,这些API返回一些格式良好的XML。
例如,可能有一个名为getFolders的API可以返回以下内容 -
<xml>
<folders>
<folder id=1>
<name>Test 123</name>
<files>
<file id=100>
<name>hello.txt</name>
<path>./hello.txt</path>
</file>
...
</files>
</folder>
...
</folders>
类似地,可以有一个对现有文件夹项进行操作的updateFolders API,为简单起见,我们可以说它只是更新文件夹名称。对它的请求将发布如下内容 -
<xml>
<method name="updateFolder">
<folder_id="1">
<params>
<param name="folder_name" value="Test"/>
</params>
</method>
我想弄明白 -
1. How can I represent folder as a managed object i.e., how do I initialize it from the above XML
2. Once initialized, how can I handle an update to it using the updateFolder API shown above
似乎NSPersistentStore(如XMLStoreType)直接指向包含最终数据的实际XML文件。就我而言,XML只是从XMLRPC调用返回的,而实际数据存储在服务器端DB上。因此,由于存储不是对象的直接表示(或存储对象的位置),我想知道是否应该创建自定义NSAtomicStore并分别处理加载和保存以进行初始化和更新。这是为NSAtomicStore执行此操作的链接 -
请告诉我这是否有意义,或者是否有更好的方法来解决这个问题。
提前感谢您的帮助!
答案 0 :(得分:1)
您是否已阅读:
同时查看TBXML:
TBXML是一种用Objective-C编写的轻量级XML文档解析器,专为在Apple iPad,iPhone和iPad上使用而设计。 iPod Touch设备。 TBXML旨在提供尽可能快的XML解析,同时利用最少的资源。绝对效率的这一要求是以XML验证和修改为代价的。无法从TBXML对象修改和生成有效的XML,并且在导入和解析XML文档时不会执行任何验证。
答案 1 :(得分:0)
没有简单的方法可以满足您的要求,而Core Data也不会让您更轻松。
我假设您已经阅读了文档 - 您需要确定一个合适的模型来本地表示您的远程数据,管理远程端和本地端之间的交互,并在两端之间同步状态。决定和协调同步过程是最难的部分。我不确定是否有任何第三方框架可以自动执行此过程。