On 2012-03-17, at 6:57 PM, Dave Fernandes wrote: > Yes, [NSDate date] returns an autoreleased object. So you need to retain it > if you want to use it later. Once you are done with it, you should release > it. See: > https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmRules.html#//apple_ref/doc/uid/20000994-SW6 > > If a Cocoa method name doesn't begin with “alloc”, “new”, “copy”, or > “mutableCopy”, then the returned object is autoreleased.
Oops - "init" should be included in this list, of course. > > Dave > > On 2012-03-17, at 6:38 PM, G S wrote: > >> I have a member variable to hold an NSDate: >> >> NSDate* _firstBadAccuracyTime; >> >> At some point, something happens and I set this value to "now": >> >> _firstBadAccuracyTime = [NSDate date]; >> >> On my next trip through this function, I calculate how long it has been >> since I set this date: >> >> NSDate* now = [NSDate date]; >> if([now timeIntervalSinceDate:_firstBadAccuracyTime] > >> BAD_ACCURACY_TIME) >> >> then CRASH: BAD ACCESS >> >> _firstBadAccuracyTime still contains a valid address, but the object >> must've been released. Why? If I add a retain where I assign it, the >> crash doesn't happen. I added autorelease, but then got a crash on >> releasing an object I hadn't allocated (which makes me think it's already >> autoreleased). >> >> Thanks for any insight! >> >> Gavin >> _______________________________________________ >> >> Cocoa-dev mailing list ([email protected]) >> >> 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/dave.fernandes%40utoronto.ca >> >> This email sent to [email protected] > _______________________________________________ Cocoa-dev mailing list ([email protected]) 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 [email protected]
