Objective c 使NSTableView从RSS源显示文章
如何使NSTableView显示RSS提要(仅一个)? 我认为这与NSURL和设置表视图数据源有关。Objective c 使NSTableView从RSS源显示文章,objective-c,cocoa,Objective C,Cocoa,如何使NSTableView显示RSS提要(仅一个)? 我认为这与NSURL和设置表视图数据源有关。 但是我到底要怎么做呢?有几个步骤 当然,您需要一个数据源 这个数据源需要能够自身连接到RSS提要,读取它,解析它,并将它转换为可显示的内容;或: 您需要有一个数据源datasource来封装网络/XML解析/RSS解释位 最有可能的情况是,您会想要: NSTableView <-> MyDatasource <-> MyDownloadHandler NSTableVi
但是我到底要怎么做呢?有几个步骤
NSTableView <-> MyDatasource <-> MyDownloadHandler
NSTableView MyDatasource MyDownloadHandler
其中,MyDownloadHandler
负责所有下载和解析,并在接收数据时通知MyDatasource
,然后通知表视图重新绘制自身(或者耐心地等待表视图在其正常操作过程中重新绘制自身,或者作为计时器触发的结果,或者通过发出请求表视图重新绘制自身的控制器捕获的通知)
编辑:当然,这实际上并没有回答你的问题
具体来说,您需要一个NSURLConnection对象来获取RSS提要(同步或异步;如果内存可用,它可以同时执行这两个操作;如果没有,则有另一个类可以执行)
您还需要在处理程序对象上实现
NSXMLParserDelegate
类别,并在RSS提要上运行NSXMLParser
(NSXMLParser
实际上可以直接用initWithContentsOfURL:
初始化,这可能会节省您一些时间。)有几个步骤
NSTableView <-> MyDatasource <-> MyDownloadHandler
NSTableView MyDatasource MyDownloadHandler
其中,MyDownloadHandler
负责所有下载和解析,并在接收数据时通知MyDatasource
,然后通知表视图重新绘制自身(或者耐心地等待表视图在其正常操作过程中重新绘制自身,或者作为计时器触发的结果,或者通过发出请求表视图重新绘制自身的控制器捕获的通知)
编辑:当然,这实际上并没有回答你的问题
具体来说,您需要一个NSURLConnection对象来获取RSS提要(同步或异步;如果内存可用,它可以同时执行这两个操作;如果没有,则有另一个类可以执行)
您还需要在处理程序对象上实现
NSXMLParserDelegate
类别,并在RSS提要上运行NSXMLParser
(NSXMLParser
实际上可以直接用initWithContentsOfURL:
初始化,这可能会节省您的一些时间。)您应该看看PubSub.framework:一些特点:
- 检索提要内容
- 订阅订阅源
- 原子/RSS不可知论
仅10.5+您应该查看PubSub.framework:
一些特点:
- 检索提要内容
- 订阅订阅源
- 原子/RSS不可知论
10.5+只有它的工作方式会有点像这里的示例应用程序吗?确实如此;除非您可能想使用
NSXMLParser
而不是NSXMLDocument
。我明白了。那么我需要更改其中的哪些部分(除了去掉不再需要的代码)要使其与我的提要一起工作?这取决于。大部分代码可能可以按原样使用,但如果选择使用NSXMLParser
路径,则需要在合适的类中实现NSXMLParserDelegate
,并将其传递给从获取的数据(或使用URL初始化)创建的NSXMLParser
将提要转换为对您的应用程序有意义的对象。如果没有更多关于实现细节的详细信息,我无法告诉您如何操作。好的,我将尝试按原样使用它,而不必使用NSXMLParser
路径。因此,我尝试将get Public提要URL更改为另一个提要,如图中所示,但确实如此esn不加载提要。为什么不呢?我需要更改其他内容吗?它的工作方式是否有点像这里的示例应用程序?确实如此;除非您可能希望使用NSXMLParser
而不是NSXMLDocument
。我明白了。那么我需要更改其中的哪些部分(除去不再需要的代码)要使其与我的提要一起工作?这取决于。大部分代码可能可以按原样使用,但如果选择使用NSXMLParser
路径,则需要在合适的类中实现NSXMLParserDelegate
,并将其传递给从获取的数据(或使用URL初始化)创建的NSXMLParser
将提要转换为对您的应用程序有意义的对象。如果没有更多关于实现细节的详细信息,我无法告诉您如何操作。好的,我将尝试按原样使用它,而不必使用NSXMLParser
路径。因此,我尝试将get Public提要URL更改为另一个提要,如图中所示,但确实如此esn不加载提要。为什么不?我需要更改其他内容吗?嗯。你能分享一些我可以修改的示例代码吗?我查看了Developer/Examples文件夹中PubSub的示例应用程序,但该应用程序有一个完整的RSS应用程序,当我希望它在表视图中只显示一个提要时。Joshua:这并不意味着PubSub不能这样做。您只需编写自己的原始代码。Hmmm。您能分享一些示例代码吗