У меня есть класс одноплодного и линия в утечке памяти причины метода инициализации, и я не kwno почему ...Утечка памяти с одноплодной
это моя реализация
static timerController *sngTimer = nil;
@implementation timerController
@synthesize repeatingTimer;
@synthesize dateComp;
@synthesize bPause;
+(timerController *) singletonTimer
{
@synchronized(self){
if (sngTimer == nil)
{
sngTimer = [[timerController alloc]init];
}
}
return sngTimer;
}
-(id)init
{
self = [super init];
if (self != nil) {
dateComp = [[NSDateComponents alloc] init]; ///this line cause memory leak
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; ///this line cause memory leak
[dateComp setCalendar:gregorianCalendar]; ///this line cause memory leak
[gregorianCalendar release];
bPause = FALSE;
}
return self;
}
Можете ли вы отметить синглтон как автореферат в Objective-C? Не могли бы вы отпустить его в чем-то вроде C 'atexit()' handler? –
- свойство dateComp объявлено как «сохранить» или «скопировать»? Если это так, вы протекаете NSDateComponents –
dateComp объявлен удержанием – alex