Swift 比较内存地址

标签 swift

我想比较两个 Swift 对象的地址,例如:

let a: AnyObject
let b: AnyObject

a < b

当然这是不可能的,但我找不到任何方法来实现这一目标。

我可以实现一个 C 函数来做到这一点

bool compare(NSObject *a, NSObject *b){
    return a < b;
}

然后像这样调用它

compare(a, b)

但这限制了我使用 NSObjects

所以我的问题是:有什么方法可以完全在 Swift 中实现这一点?

最佳答案

您可以使用 unsafeAddressOf返回一个 UnsafePointer 值的函数。

let elm0 = "hello world"
let elm1 = UIButton()

let address0 = unsafeAddressOf(elm0)
let address1 = unsafeAddressOf(elm1)

let compare = address0 > address1

希望这对您有所帮助。

关于Swift 比较内存地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32286319/

相关文章:

swift - HealthKit 错误 : Missing com. apple.developer.healthkit 权利

ios - Swift 无法满足 Jump Right In 中的约束

ios - 在 Swift 4 中使用 draw-move for 循环制作动画

ios - 尝试使用指向另一个类的指针作为 Swift 中解析查询的一部分

swift - 如何停止我的 UIButton 动画 SWIFT

swift - 轻松截断 Double - swift

ios - UITest 在 Framework 中不起作用

ios - EXC_BAD_ACCESS 代码=EXC_ARM_DA_ALIGN

ios - 将 NSDate 从不带年份的字符串设置为当前年份,Swift

swift - Swift 中的 Facebook 帐户工具包