数组和字典之间的不同桥接

时间:2015-07-08 16:28:31

标签: swift

最近,我在Array和Dictionary之间找到了不同的桥接。在下面的代码中,我尝试通过隐式桥接数组和字典来检查正在创建的实例的地址。

enter image description here

如您所见,dic传递给unsafeAddressOf方法,该方法打印通过的AnyObject实例的地址。因为dic是Dictionary的值,所以当它传递给函数时它将被转换为NSDictionary。因此,这种桥接将成为NSDictionary的新实例。因此,我预计调用两次会导致生成两个NSDictionary实例。但是,打印了相同的地址。似乎只有一个实例。

NSArray的实验似乎在我的假设中运作良好。

为什么他们的工作方式不同?

1 个答案:

答案 0 :(得分:0)

无法复制。 unsafeAddressOf的现代等效词是

Unmanaged.passUnretained(arr).toOpaque()

ObjectIdentifier(arr)

,它们每个对象都产生相同的一致地址(需要明确地桥接到AnyObject)。