As was pointed out to me in the bug report, the preferred way to get a pointer is to use
Unmanaged.passUnretained(obj).toOpaque() I see a few issues, though (aside from toOpaque() missing in Xcode 8b1, haven't installed b2 yet): - it is quite a verbose way of something I consider should be trivial - getting an address of an object. - it requires the caller to deal with retain cycle which I don't think should be explicit for getting an address of an object. I'd personally leave it in the language as it feels similar to dynamicType(obj) and can be a nice-to-have debugging tool. The most confusing part about unsafeAddress(of:) is implicit bridging which creates a new instance e.g. in case of String, in order to satisfy the AnyObject requirement. Fortunately, this will get eliminated by SE-0072 and Unmanaged suffered from the same issue, though it required you to specify either Unmanaged<NSString> or Unmanaged<AnyObject>. > On Jul 6, 2016, at 8:03 PM, Jacob Bandes-Storch via swift-evolution > <[email protected]> wrote: > > > * Remove unsafeAddressOf. "We are not aware of any real use cases for it. If > there are any, it should be renamed to unsafeAddress(of:) to follow the > guidelines." (https://bugs.swift.org/browse/SR-1957 > <https://bugs.swift.org/browse/SR-1957> rdar://problem/18589289 <>) > > > Oops, I just responded to this on another thread. Pasting: > > It's minor, but I use unsafeAddressOf regularly for writing `description` > methods: > > var description: String { > return "<\(self.dynamicType): \(unsafeAddressOf(self))>{ more info > here... }" > } > > I guess this would be covered by some generalized solution for format > specifiers in string interpolations, but I gather that won't happen for quite > a while... > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
