What guarantees that the current autorelease cycle doesn’t end in the middle of this code?
Actually, as I think about it, technically, the [[hostObject myArray] retain] should be wrapped in some kind of lock mechanism itself to make it atomic…. > On Aug 15, 2015, at 2:10 PM, Mike Abdullah <mabdul...@karelia.com> wrote: > > >> On 15 Aug 2015, at 13:07, Sandy McGuffog <mcguff...@gmail.com> wrote: >> >> >>> On Aug 15, 2015, at 1:14 PM, Mike Abdullah <mabdul...@karelia.com> wrote: >>> >>> NSArray *array = [hostObject myArray]; >>> // run your checks, etc. >>> NSString *someString = [array objectAtIndex:2]; >> >> Just to be safe: >> >> NSArray *array = [[hostObject myArray] retain]; >> // run your checks, etc. >> NSString *someString = [array objectAtIndex:2]; >> [array release]; >> >> Or whatever other way of ensuring the array isn’t dealloced out from under >> you, depending on how you’re doing memory management > > No need. The OP has stated myArray is an atomic property. It’s guaranteed not > to go away until the end of the current autorelease pool. > > If the above code did actually add some protection, it would mean the first > line of code had a race condition in it where you might not be able to retain > in time. You’d just be hiding the problem and making it less likely, rather > than actually fixing it. _______________________________________________ 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