let obj = Obj()
/// 方案一: 测试中 发现作用在<引用类型>的对象上能确保正确性
let point = Unmanaged<AnyObject>.passUnretained(obj as AnyObject).toOpaque()
let hashValue = point.hashValue // 这个就是唯一的,可以作比较
/// 方案二:测试中 发现作用在<值类型>的对象上能确保正确性
let hashValue2 = withUnsafePointer(to: &obj) { (point) -> Int in
/// 闭包的实现有多种,可根据自己需求修改
return point.hashValue
}
/// 方案三:以唯一值来对应地址的唯一(比如创建对象时,以时间做标记等)