Я не могу использовать новый отладчик Xcode 4.3 - PullRequest
2 голосов
/ 21 февраля 2012

У меня странная ошибка отладки после переноса моего проекта из Xcode 4.0 в Xcode 4.3.

Проект строится хорошо, ошибок нет, но когда я каждый раз что-то добавляю, при отладке появляются ошибки, которые я работаю с освобожденными элементами.

Например, простая строка:

tableData=[[NSMutableArray] init];

дает ноль понтер

tableData=0x0000

и странная ошибка в окнах вывода:

*** -[__NSDate description]: message sent to deallocated instance 0x8382d30

В других местах это могут быть не «__NSDate», а «UITableView», «NSString» и т. Д. Та же самая строка в том же проекте с xCode 4.0 не дает ошибок, но с Xcode 4.3 проблемы.

Что не так? Не могли бы вы предложить что-нибудь.

Ответы [ 2 ]

5 голосов
/ 22 февраля 2012

Мой xCode только что установлен.Я решил проблему.

Перейдите в xCode
Продукт → Редактировать схему ... → Информация

Выберите любой другой отладчик, и проблема исчезнет.Позже я поиграл с этой опцией, и проблема никогда не возвращалась.

Я бы предложил GDB, потому что LLDB все еще иногда показывает 0x00000 указателей сразу после выделения и инициализации.

3 голосов
/ 21 февраля 2012

Линия:

tableData=[[NSMutableArray] init];

не правильно. Правильная строка:

NSMutableArray *tableData = [[NSMutableArray alloc] init];

Далее вы можете использовать эти строки для печати адреса памяти:

NSLog(@"%p", tableData); // print the tableData memory address

или посмотрите в области переменных отладчика. Не забудьте освободить память:

[tableData release]; // release the memory
...