unsafeAddressOf
という大域関数で取得できるようです。
普通に取得できました。
let obj = NSObject() print(unsafeAddressOf(obj)) // → 0x00007ff9c51054f0
代入した場合は同じ番地なので同じ値になります。
let obj = NSObject() let obj2 = obj print(unsafeAddressOf(obj)) // → 0x00007fc2e042b6d0 print(unsafeAddressOf(obj2)) // → 0x00007fc2e042b6d0
構造体も同様です。
let str = "" print(unsafeAddressOf(str)) // → 0x00007fc2e1246e70
unsafeAddressOfは引数がAnyObjectなのでOptionalや関数を引数にする事はできませんでした。
public func unsafeAddressOf(object: AnyObject) -> UnsafePointer<Void>