我正在尝试在 Swift 中实现 NSXMLParserDelegate,但在某些委托方法中使用属性字典时遇到问题。例如,在parser:didStartElement:
:
func parser(parser: NSXMLParser!, didStartElement elementName: String!, namespaceURI: String!, qualifiedName qName: String!, attributes attributeDict: [NSObject : AnyObject]!) {
尝试访问 attributeDict 值,例如:
if self.feedType == FeedType.RSS {
self.insideLink = true
} else {
if (String(attributeDict["rel"]) == "alternate") && (String(attributeDict["type"]) == "text/html") {
self.link = String(attributeDict["href"])
self.insideLink = false
self.doneWithLink = true
}
}
我收到一条错误消息:“'String' 不能转换为 'FeedType'”。
enum FeedType:String {
case ATOM = "feed"
case RSS = "rss"
}
class FeedParser:NSObject, NSXMLParserDelegate {
var feedType:FeedType?
是一个错误。主题的其他十几个变体也是如此……有什么见解吗?
我想问题是如何正确使用attributeDict
type的键/值对[NSObject: AnyObject]
?