2012-06-23 4 views
0

Я в настоящее время делаю уроки CS193P через iTunesU, и учитель несколько раз упоминал опцию Build and Analyze. Он сказал, что это хороший инструмент и удовольствие от игры.
Итак, я попробовал и заметил, что он не работает, или что я не понимаю, как он должен работать (думаю, последний вариант).
У меня есть несколько утечек памяти, и это меня совсем не предупреждает! Я видел онлайн, что голубая вещь должна появиться, сказав мне, что это утечка, но я ничего не вижу, хотя я делаю NSDictionary *dict = [[NSDictionary alloc] init];.Анализатор XCode не работает

Как это должно работать? Из того, что я читал в Интернете, я думал, что это должно сигнализировать о потенциальных утечках. Что я делаю не так?

Я использую XCode 3.2.5.

Спасибо.

Update:

Это своего рода ошибка, я думаю.
Когда я объявляю это в интерфейсе, как NSDictionary *dict; и инициализирую его (но нигде не освобождая его), он ничего не говорит.

Когда я объявляю и инициализировать его в - (void) init и не выпускают его там, как:

- (void) init { 
    if(self = [super init]) 
     NSDictionary *dict = [[NSDictionary alloc] init]; 
    return self; 
} 

Это сигнал об утечке. Зачем? Это из-за моих настроек? Это ошибка? Если это ошибка, где и как мне сообщить об этом?

ответ

1

Это дает вам предупреждение, потому что вы не освобождаете его.

-(void)dealloc{ 
    [super dealloc]; 
    [dict dealloc]; 
} 

Это не предупреждение, потому что вы должны быть в состоянии освободить объекты, как только вы создаете их, и анализатор цель состоит в том, чтобы предупредить вас о возможных утечках в вашем коде.

Вы можете использовать autorelease, или вы удалите объект, созданный вручную.

P.S., мало любопытство: почему вы используете Xcode 3.2.5?

Не знаю точно, может ли эта версия, но в последних версиях Xcode, когда вы запускаете этот инструмент, вы можете видеть объект WHAT, который вы освобождаете средствами некоторых стрелок с объяснением, что-то вроде

+0

Спасибо за ответ! Но я думаю, что вы неправильно поняли вопрос. Я специально создал утечку (ОК, этого там нет), чтобы протестировать Build and Analyze и не показывать никаких предупреждений (это вопрос в вопросе)! И я знаю управление памятью, я просто переделываю первую часть курса, потому что я пропустил домашнюю работу, теперь я это делаю. :) – 11684

+0

Ahh извините! Я думал, что ты забыл освободить объект! Ну, я могу предложить вам обновить Xcode и посмотреть, отображается ли предупреждение в обновленной версии. – Phillip

+0

Я могу только обновить до 3.2.7. Этого достаточно? – 11684

0

Я только что узнал, что перезагрузка и перезапуск Xcode будет вернуть его обратно.

Смежные вопросы