Приборы не могут обнаружить утечку памяти - PullRequest
0 голосов
/ 12 октября 2011

У меня есть этот тестовый код, который я запускаю, используя параметры профиля.Но я не вижу никаких утечек

Я ввел утечку, но не уверен, почему приборы не показывают утечку

NSMutableArray* test_leak2()
{
    int i=0;
    NSMutableArray *arr = [[NSMutableArray alloc] init ];

    while(i <100) {
    NSImage *img = [[NSImage alloc] init ];
        [arr addObject:img];
        i++;
    }
    return arr;
}

int main(int argc, char *argv[])
{
    NSMutableArray *arr = test_leak2();
    return 0;
}

1 Ответ

1 голос
/ 12 октября 2011

Если вы используете ARC, утечки нет, ARC обрабатывает удержания / освобождения "под крышками".

Инструмент для защиты от утечек не является надежным, это хорошее начало.Первая линия защиты, если Статический анализатор, запустите его и исправьте все предупреждения.

Не все потери памяти являются утечками, только те, на которые нет указателя.Попробуйте Heapshot Analysis, у bbum есть отличный учебник здесь .Я использовал Heapshot много раз с большим преимуществом, большое спасибо бомжу.

...