RSSKit 1.0.9

RSSKit 1.0.9

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2016年7月
SPM支持SPM

Quan Nguyen维护。



RSSKit 1.0.9

  • 作者:
  • Quan Nguyen

RSSKit

一个用于获取、解析和更新RSS/Atom订阅源的Swift库

安装

手动安装

不建议手动安装框架,但如果您不愿意使用上述任何一个依赖管理器,您可以将RSSKit手动整合到项目中。在项目中使用RSSKit的一个常见方式是使用嵌入式框架。

  • 打开终端,使用cd命令进入您的顶级项目目录,然后运行以下命令,如果您的项目没有被初始化为git仓库
$ git init
  • 将RSSKit添加为子模块。在您最喜欢的终端中,使用cd命令进入您的顶级项目目录,并输入以下命令
$ git submodule add https://github.com/quan118/RSSKit.git
  • 打开RSSKit文件夹,并将RSSKit.xcodeproj拖拽到您的应用项目中的“项目导航器”下

    它应该位于您的应用程序的蓝色项目图标下,它是在所有其他Xcode组之上还是之下并不重要。

  • 在Xcode中,通过点击蓝色项目图标并选择侧边栏中的“Targets”部分下的应用目标,导航到目标配置窗口。

  • 在上面的选项卡栏中,打开“构建阶段”面板。
  • 展开“目标依赖”组,并添加RSSKit.framework
  • 在“构建阶段”面板的左上角点击加号按钮,并选择“新增复制文件阶段”。将此新阶段重命名为“复制框架”,设置“目标”为“框架”,并添加您所需平台的RSSKit.framework

使用

设置解析器

创建解析器

// Create feed parser and pass the URL of the feed
let feedURL:NSURL = NSURL(string:"http://images.apple.com/main/rss/hotnews/hotnews.rss")
let feedParser:FeedParser = RSSFeedParser(feedURL:url)

设置委托

// Delegate must conform to `RSSFeedParserDelegate`
feedParser.delegate = self

设置解析类型。选项有ParseType.FullParseType.ItemsOnlyParseType.InfoOnly。Info表示关于订阅源的信息,如标题和描述。Items是单个条目或故事。

// Parse the feeds info (title, link) and all feed items
feedParser.feedParseType = ParseType.Full

设置解析器是否应同步或异步连接并下载订阅源数据。注意,这仅影响订阅源数据的下载,不影响解析操作本身。

// Connection type
feedParser.connectionType = ConnectionType.Asynchronously

初始化解析

// Begin parsing
feedParser.parse()

然后解析器将下载并解析订阅源。如果您在任何时候希望停止解析,可以调用

// Stop feed download / parsing
feedParser.stopParsing()

stopParsing 方法将立即停止下载和解析源。

读取源数据

一旦开始解析,代理将接收到解析过程中生成的源数据。

optional func feedParserDidStart(parser:RSSFeedParser) // Called when data has downloaded and parsing has begun
optional func feedParser(parser:RSSFeedParser, didParseFeedInfo info:RSSFeedInfo) // Provides info about the feed
optional func feedParser(parser:RSSFeedParser, didParseFeedItem item:RSSFeedItem) // Provides info about a feed item
optional func feedParserDidFinish(parser:RSSFeedParser) // Parsing complete or stopped at any time by `stopParsing`
optional func feedParser(parser:RSSFeedParser, didFailWithError error: NSError) // Parsing failed

RSSFeedInfoRSSFeedItem 包含属性(标题、链接、摘要等),这些属性将存放解析后的数据。查看 RSSFeedInfo.swiftRSSFeedItem.swift 以获取更多信息。

可用的数据

以下是可供源信息和条目对象使用的属性列表

RSSFeedInfo

  • info.titleString?
  • info.linkString?
  • info.summaryString?

RSSFeedItem

  • item.titleString?
  • item.linkString?
  • item.authorString?
  • item.dateNSDate?
  • item.updatedNSDate?
  • item.summaryString?
  • item.contentString?
  • item.enclosures (具有键 urltypelengthDictionary 组成的 Array
  • item.identifierString?

使用数据

RSSFeedInfoRSSFeedItem 的所有属性都返回源提供的数据。此内容可能包含或不包含 HTML 和编码实体。如果内容包含 HTML,则可以在 UIWebView 中显示数据,或者可以使用提供的 String 类别 (String+HTML),这将允许您操作此 HTML 内容。便捷的方法有

// Convert HTML to Plain Text
// - Strips HML tags & comments, removes extra whitespace and decodes HTML character entities
public func stringByConvertingHTMLToPlainText() -> String

// Decode all HTML entities using GTM.
public func stringByDecodingHTMLEntities() -> String

// Encode all HTML entities using GTM
public func stringByEncodingHTMLEntities() -> String

许可证

RSSKit 采用 MIT 许可证发布。有关详细信息,请参阅 LICENSE。