i looking @ code lifted straight mapviewcontroller.m file in currentaddress sample available on apple's web site:
- (void)dealloc { [reversegeocoder release]; [mapview release]; [getaddressbutton release]; [super dealloc]; } - (ibaction)reversegeocodecurrentlocation { self.reversegeocoder = [[[mkreversegeocoder alloc] initwithcoordinate:mapview.userlocation.location.coordinate] autorelease]; reversegeocoder.delegate = self; [reversegeocoder start]; }
i wondering function of autorelease when allocating object. (the reversegeocoder ivar in mapviewcontroller class set retain property.) have code similar in application, , seems work either way.
setting reversegeocoder
property increments retain count (+1), since you're creating object alloc
+init
(+1), need autorelease
(-1) not end 2 retain count.
it work either way, difference when not autorelease
, leak.
the reversegeocoder ivar
it sure is, note when you're using self.reversegeocoder
form, you're not accessing ivar directly - instead, you're calling relevant setreversegeocoder:
function, either written or @synthesized compiler.
see: http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/memorymgmt/memorymgmt.html
Comments
Post a Comment