Простая утечка не отображается в инструменте инструментов-утечки - PullRequest
0 голосов
/ 08 декабря 2010

Почему, когда следующий код (намеренно протекающий) выполняется с помощью инструмента Instrument-Leaks, он показывает, что существует утечка для NSObject, но не для NSDate? Они оба отображаются при запуске с помощью инструмента статического анализа Analyze, как и следовало ожидать.

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {

    NSObject* obj = [NSObject alloc];
    obj = [NSObject alloc];

    NSDate* date = [NSDate alloc];
    date = [NSDate alloc];

    sleep(10); // time to allow leaks to pick up sample
    return 0;
}

1 Ответ

2 голосов
/ 08 декабря 2010

Это всего лишь предположение: NSDate может реализовать несколько довольно жестких хаков для повышения производительности, что заставляет его метод -alloc возвращать кэшированное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...