使用NSXMLParser在Swift中获取属性

时间:2015-11-12 14:41:18

标签: ios swift nsxmlparser

是否有一种特殊方式需要调用attributeDict,其中字符串包含短划线?

我正在尝试获取下面的句点名称:

<time-layout time-coordinate="local" summarization="12hourly">
     <layout-key>k-p12h-n13-1</layout-key>
          <start-valid-time period-name="Veterans Day">2015-11-11T06:00:00-05:00</start-valid-time>

使用

if (elementName as NSString).isEqualToString("start-valid-time") {
    var test = attributeDict["period-name"]!
    print(elementName)
    print(attributeDict)
}

我可以看到操场上的属性名称与我要求的密钥相同,但它不会返回? {I}我想的是"-"奇怪的东西?

编辑:这可能是一个Swift问题,因为使用字符串插值会返回字符串:

let test = ("\(attributeDict["period-name"])")

1 个答案:

答案 0 :(得分:0)

问题在于NSXMLParser并且它的attributeDict是一个Objective-C API,并且NSDictionary强制键/值符合NSCopying协议,这需要NSObject }。因此,您无法直接从NSObject转到String,因此必须通过NSString,因此:

if let periodAsNSString: NSString = attributeDict["period-name"] {
     let periodAsString: String = periodAsNSString as String
}

最后将值放入String