Инструменты, не обнаружившие утечку памяти в Xcode - PullRequest
2 голосов
/ 21 мая 2011

Я ломал голову над этим уже несколько дней.Я все еще пытаюсь обернуть голову вокруг управления памятью в target-c.

Вот мой фрагмент (сжатый для ясности):

- (void)performOperation:(NSString *)operation
{
    if ([@"+" isEqual:operation]) 
    {
        waitingOperation = operation;
    }
    else if ([@"C" isEqual:operation])
    {
        waitingOperation = nil;
    }

}

waitOperation - просто локальная частная NSString (no @property, no @synthesize, no getters / setters).

Разве я не должен иметь утечку памяти, когда присваиваю waitOperation nil, когда он в данный момент указывает на строку NSString в куче?Мой вызов этого метода в приложении ios, которое передает NSString из UILabel display.text.Я профилировал этот код с помощью инструментов и никогда не видел утечек.Я был бы очень признателен за некоторую ясность в этом.Заранее спасибо.

1 Ответ

1 голос
/ 21 мая 2011

Вы не предъявили претензию по праву собственности на waitingOperation, позвонив по номеру retain, поэтому вы не несете ответственности за release.

. В какой-то момент вы можете столкнуться с проблемами, еслиСтрока высвобождается в другом месте (например, с помощью UILabel), и в этом случае у вас останется висячий указатель.Но вы ничего здесь не пропускаете.

...