Я занимаюсь разработкой графического приложения и пытаюсь изменить средство визуализации с OpenGL на Quartz2D, чтобы упростить рендеринг текста.
Сохраненный объект NSDate, который раньше работал нормально, внезапно, кажется, освобождает себя, вызывая сбой, когда NSMutableString пытается добавить свое описание (теперь 'nil').
Построить и проанализировать не сообщает о потенциальных проблемах.
Упрощенно, код выглядит так:
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
}
Я должен подчеркнуть, что реальный код намного сложнее, с отдельным потоком, который также обращается к объекту даты, однако существуют подходящие блокировки, и при пошаговом выполнении кода [aDate release]
нигде не вызывается.
Использование [[NSDate alloc] init]
имеет тот же эффект.
Я также должен добавить, что init - это первая вызываемая функция.
Может кто-нибудь предложить что-то, что я, возможно, упустил из виду, или почему объект NSDate (или кажется) высвобождает себя?