Objective-C NSDate memory issue (again)
- by Toby Wilson
I'm developing a graphing application and am attempting to change the renderer from OpenGL to Quartz2D to make text rendering easier.
A retained NSDate object that was working fine before suddenly seems to be deallocating itself, causing a crash when an NSMutableString attempts to append it's decription (now 'nil').
Build & analyse doesn't report any potential problems.
Simplified, the code looks like this:
NSDate* aDate
-(id)init
{
aDate = [[NSDate date] retain]
return self;
}
-(void)drawRect(CGRect)rect
{
NSMutableString* stringy = [[NSMutableString alloc] init];
//aDate is now deallocated and pointing at 0x0?
[stringy appendString:[aDate description]]; //Crash
}
I should stress that the actual code is a lot more complicated than that, with a seperate thread also accessing the date object, however suitable locks are in place and when stepping through the code [aDate release] is not being called anywhere.
Using [[NSDate alloc] init] bears the same effect.
I should also add that init IS the first function to be called.
Can anyone suggest something I may have overlooked, or why the NSDate object is (or appears to be) releasing itself?