将NSTableView连接到XML-RPC服务器

时间:2008-11-19 23:31:30

标签: objective-c cocoa xml-rpc

通过绑定,委托或数据源,有多种方法可以通过数据填充NSTableView。

使用经常从XML-RPC服务器更改的数据来填充tableview的最佳方法是什么?我只针对Mac OS X 10.5,有很多关于如何做的例子,但没有什么是非常明确的。

有什么意见吗?

4 个答案:

答案 0 :(得分:1)

如果我理解正确,那真的是两个不同的问题。如何获取XML-RPC数据以及如何填充tableview?

我不太熟悉XML-RPC,但是通过快速浏览一下,您可以自己使用NSXML *类进行解析,或者使用多个第三方框架之一。我认为首先查看可用的框架是个好主意,即使你最终没有使用它们,如果你走这条路线,他们应该自己解决如何自己解析XML数据。 / p>

从XML-RPC请求获得数据后,您需要将其存储在控制器类中的某种数据结构中。您可以使用字典数组或基本字符串,或者创建一个自定义对象来表示您的数据,但这实际上取决于您正在做的事情的复杂性。控制器对象将向表视图提供数据,处理刷新以及您可能需要执行的任何其他任务。您可以直接从控制器发出XML-RPC请求,或者您可能希望为此创建一个额外的类来分隔代码。

无论您使用数据源方法还是绑定(以及数组控制器)并不重要,它们都可以正常工作并具有各自的优势。如果您刚开始使用Cocoa,请务必使用数据源方法。绑定需要Objective-C和Cocoa的中级知识,否则将很难使用和调试。

答案 1 :(得分:0)

我会使用数据源,因为它非常简单灵活。向NSTableView提供数据的对象只需要实现2个函数:

  1. 返回行数
  2. 返回给定行/列的对象
  3. 对象如何在内部存储数据完全取决于您(灵活性),因此您可以选择最适合解析xml-rpc响应的匹配项。

    有关NSTableViewDataSource

    的更多信息

答案 2 :(得分:0)

我发现this xmlrpc framework更容易使用。你当然仍然需要按照之前的解释进行包装,因为这些是两个不同的问题/问题。

答案 3 :(得分:-1)

我不知道最好的方法是什么。我并不认为这是一个好方法,所以“最好的方式”实际上将是“最差的”方式。

看看Web Services Core。它是用于与XML-RPC和SOAP Web服务交互的Carbon API。我只使用了SOAP功能,但XML-RPC也应该可以工作。这很痛苦,因为它是碳而不是可可;但是有很多网络代码你不必写,这应该是一个胜利。

之后,我将把与WSCore交谈的所有内容整理成一个类,并使其实现NSTableViewDataSource协议,并将表视图指向它作为表的数据源。每次来自Web服务的数据发生更改时,只需调用reloadData以使表视图刷新自身。

祝你好运。 OS X上的Web服务支持充其量是痛苦的,因此您将需要它。