我正在为一个项目做设计,但什么都没有实现——所以我仍在思考过程中,以确定 Core Data 是否适用于该项目。
这是我的查询 -
我想使用 Core Data 创建一个托管对象模型来表示一些服务器端对象,例如文件夹、文件等......
所有对象(文件夹、文件等)都可以通过 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
似乎像 XMLStoreType 这样的 NSPersistentStore 直接指向保存最终数据的实际 XML 文件。就我而言,XML 只是从 XMLRPC 调用返回的内容,实际数据存储在服务器端数据库中。因此,由于存储不是对象的直接表示(或存储对象的位置),我想知道我是否应该创建一个自定义 NSAtomicStore 并分别处理加载和保存以进行初始化和更新。这是为 NSAtomicStore 执行此操作的链接 -
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/AtomicStore_Concepts/Articles/asLoading.html#//apple_ref/doc/uid/TP40005298
请让我知道这是否有意义或者是否有更好的方法来处理这个问题。
最佳答案
你通读了吗:
http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/Reference/Reference.html
另请查看 TBXML :
TBXML 是一个用 Objective-C 编写的轻量级 XML 文档解析器,设计用于 Apple iPad、iPhone 和 iPod Touch 设备。 TBXML 旨在提供最快的 XML 解析,同时使用最少的资源。这种对绝对效率的要求是以 XML 验证和修改为代价的。不可能从 TBXML 对象修改和生成有效的 XML,并且在导入和解析 XML 文档时不会执行任何验证。
关于core-data - 将 XMLRPC/Web 服务与核心数据集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1338212/