i'm a little confused about these two qualifiers...
With ARC instead of using weak
(i.e. if I need support iOS 4) I can use unsafe_unretained
losing the auto-nil features... the final result seems to be similar to assign
.
unsafe_unretained
with assign
? It would be really interesting any link of Apple documentation on this argument... I can find only a few rows here
Clang's technical specification of ARC goes into much more detail about how the qualifiers work.
But, to answer your question: assign
and __unsafe_unretained
are not the same thing. assign
is a property attribute that tells the compiler how to synthesise the property's setter implementation, while __unsafe_unretained
is an ownership qualifier that tells ARC how to insert retain
/release
calls. But they are related: when declaring a property, assign
implies __unsafe_unretained
ownership.
Prior to ARC, assign
was the default property ownership qualifier; but with ARC enabled, the default for retainable object pointer types is strong
. (For scalars and other pointer types, assign
is still the default.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With