Swift比较XMLElement

时间:2015-10-10 18:53:02

标签: ios swift

我是swift 的新手(但不是新编码的),所以我对此有点了解。我使用Kanna,但如果我有两个XMLElements node1和node2,我写道:

let result = node1 === node2

我得到"二元运算符===不能应用于两个' XMLElement'操作数&#34 ;.这种比较是否可能与其他语法相比,如果不可能,那么为什么以及什么是最好的解决方法(我可以考虑比较innerHTML,它几乎在所有情况下都可以工作但看起来效率低下)?

1 个答案:

答案 0 :(得分:1)

XMLElement (来自Kanna)是一个协议而不是,并且它不符合 Comparable / Equatable协议负责比较 http://mgrebenets.github.io/swift/2015/06/21/equatable-nsobject-with-swift-2/

' ==='检查两个对象引用是否引用同一个对象实例。这是通过比较对象的地址而不是值来完成的。你可以拥有与' ==='相同的功能。使用下面的代码::

func isIdentityObject(firstObject:XMLElement, withObject:XMLElement) -> Bool {
    let p1 = unsafeAddressOf(firstObject as! AnyObject)
    let p2 = unsafeAddressOf(withObject as! AnyObject)
    return (p1 == p2)
}

...

let result = isIdentityObject(node1, withObject: node2)