With all of that, you could make a property wrapper that duplicated most of the functionality of weak
and unowned
without compiler support. However, there is currently no generic constraint that can fully express "is any kind of class reference type"; the AnyObject
constraint requires the type to have a simple object pointer representation, which precludes non-@objc
class-bounded protocol and protocol-composition types. Therefore, that wrapper type — and the proposed Weak<T>
and Unowned<T>
, for that matter — would not be able to support the full range of types that you can use with weak
and unowned
today.
3 Likes