objective-c - 如何将 XML 文档加载到 NSTableView 中?

标签 objective-c xml cocoa xcode macos

嗨,有人可以通过教程、指南或示例代码为我指出正确的方向吗,谢谢,萨米。

最佳答案

shreyasva 给出的答案很接近,但有些误导。

首先,将 XML 解析为易于管理的 Cocoa 数据结构是完全正确的。出于性能原因,您不应将表的数据源直接绑定(bind)到 XML。 yan.kun 的建议当然是可能的,但如果你有“超过一点”的数据,你很可能会遇到性能问题。对于更长的数据集,我强烈建议将数据解析为 NSDictionary 对象的 NSArray。

其次,如果您不打算以其他方式保存 XML 文档或者您只有少量对象,那么 Core Data 就有点过分了。远射过度。如果没有充分的理由,也没有必要(而且通常不合理)将应用程序中的每个数据结构硬塞到核心数据中。 NSDictionary 实例可以很好地缓存解析后的数据以供 TableView 使用。

第三,没有 -tableView:cellForRowAtIndexPath: 方法。这似乎混淆了 NSTableView 和 UITableView。由于您指定了 Mac 标签,请查看 NSTableViewDataSource协议(protocol)。 Cocoa Bindings 并不“优于”或“替代”数据源协议(protocol)。这是一个“替代品”。您可以将解析后的数据加载到 NSArrayController(一个字典数组,例如,每个“记录”一个)并将表列绑定(bind)到它(每列绑定(bind)到数组 Controller 的arrangedObjects 中的字典中的一个键)或只需使用(简单的)表数据源协议(protocol),只需从文档中复制/粘贴两分钟即可启动并运行。

关于objective-c - 如何将 XML 文档加载到 NSTableView 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4945087/

相关文章:

ios - 从 json 获取数据后将数据加载到 UILabels 和 UITextFields

java - 如何从不同的 XML 更改 ImageView 源?

xml - 具有标记化和不同值的复杂 XSLT 转换

xcode - 为什么 NSDictionary 在读取/写入 .plist 时会更改 <data> 的值

objective-c - 在 XCode 中更改 NSImage - 这行代码不起作用

objective-c - PresentPopoverFromBarButtonItem

ios - 主队列上的 dispatch_async block 永远不会执行

objective-c - 静态/类方法存储在 objective-c 中的位置

xml - 哪些是 HTML 和 XML 特殊字符?

macos - NSAlert 高于 NSPopover