Thanks Robert and Quincey, that's very helpful!
Op May 29, 2013, om 8:26 AM heeft Quincey Morris <quinceymor...@rivergatesoftware.com> het volgende geschreven: > On May 28, 2013, at 23:37 , Diederik Meijer | Ten Horses > <diede...@tenhorses.com> wrote: > >> 1. With ARC, do we still have to worry about string1 leaking in the >> following scenario? >> >> @property (nonatomic, copy) NSString *string1; >> ….. >> self.string1 = @"Hello"; >> string1 = @"Hello hello"; >> string1 = @"Hello hello hello"; > > No, you don't have to worry. When dealing with objects, ARC handles all > retain/release correctly, regardless of whether the assignment is to the > property or the ivar. That's kinda the point. > >> 2. How do the strong, copy and weak keywords in the property declaration >> affect this? > > ARC still does the right thing, whether you use the ivar or the setter. > > The "ownership" keyword is multi-purpose (unfortunately, IMO): > > 1. It defines the ownership attribute of a synthesized ivar (or must match > the ownership attribute of a manually declared ivar). For this, copy is the > same as strong. > > 2. It defines the behavior of a synthesized setter. For this, copy makes a > copy, everything else just does an assignment (with the appropriate memory > management according to the ivar ownership attribute). > > 3. It declares the ownership attribute of the property itself, separately > from the ivar. For this, strong and copy represent a strong property; weak > represents a weak property; __unsafe_unretained represents no ownership. > However, the property's ownership attribute has no actual effect on the > compiler. Everything the compiler does via synthesis is covered under #1 and > #2. > > Note that #1 and #2 are in truth private implementation details of the class. > #3 is the public API contract, and communicates to clients of the class > whether the property takes ownership of the property value. > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com