Потенциальная утечка выделенного объекта - PullRequest
0 голосов
/ 08 сентября 2011
+ (WAController*) sharedWAController {

    @synchronized([WAController class]) {

        if (!_sharedWAController) 
            [[self alloc] init];

        return _sharedWAController;
    }
}

Это шоу в потенциальной утечке для [[self alloc] init];

Почему ее утечка?

Ответы [ 4 ]

3 голосов
/ 08 сентября 2011

Вы никогда не назначаете его чему-либо, поэтому он просто выделяет новый объект и пропускает его.Для исправления утечки и неправильно работающего кода назначьте _sharedWAController

if (!_sharedWAController) 
    _sharedWAController = [[self alloc] init];
1 голос
/ 08 сентября 2011

сделай это: _sharedWAController = [[self alloc] init];

0 голосов
/ 15 сентября 2011
+ (CommonUtility*) sharedUtility {

    @synchronized([CommonUtility class]) {

        if (!_sharedUtility) 
            _sharedUtility = [[self alloc] init];

        return _sharedUtility;
    }
}


+ (id) alloc {

    @synchronized([CommonUtility class]) {

        _sharedUtility = [super alloc];
        return _sharedUtility;
    }
}

Я стараюсь, чтобы это было идеально. Но я выделил объект _sharedUtility, где мне нужно выпустить. это в Deloloc или autorelesae его.

0 голосов
/ 08 сентября 2011
+ (WAController*) sharedWAController {

    @synchronized([WAController class]) {

        if (!_sharedWAController)
        { 
            _sharedWAController = [[self alloc] init];
        }
        return _sharedWAController;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...