Еще один вопрос утечки памяти iPhone! - PullRequest
1 голос
/ 25 августа 2009

У меня есть простой пример того, что я не понимаю об управлении памятью на iPhone:

- (IBAction)AssignAndReleaseOne :(id)sender {
    for (int i=0;i<10;i++) {
        someString = [[NSString alloc] initWithString:@"String Assigned"];
    }
    [someString release];
}

- (IBAction)AssignAndReleaseTen :(id)sender {
    for (int i=0;i<10;i++) {
        someString = [[NSString alloc] initWithString:@"String Assigned"];
        [someString release];
    }
}

Я ожидал бы получить утечку памяти в первом методе, потому что я выделяю 10 раз (или 11 :) только с одним выпуском, но Instruments не сообщает об ошибках?

Правильно ли я или инструменты?

Спасибо, Крис.

Ответы [ 2 ]

2 голосов
/ 25 августа 2009

Вы не получите утечку, как ни удивительно. Смотри:

Ошибка памяти NSString

0 голосов
/ 25 августа 2009

Вы должны получить ожидаемую утечку памяти.

Алгоритм обнаружения утечек инструментов дорогой в использовании, поэтому он выполняется только через определенное время (я думаю, что по умолчанию он равен 10 секундам). Возможно, вам придется некоторое время запустить приложение, прежде чем Instruments обнаружит утечку.

...