是否有一种特殊方式需要调用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"])")
答案 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