Выпуск памяти неожиданно - PullRequest
0 голосов
/ 13 октября 2010

Я нахожусь в странной дилемме.У меня есть класс clsA, который имеет несколько методов. Я создаю экземпляр ClsA в другом классе и обращаюсь к методам clsA.Я объявляю объект clsA в заголовочном файле и пишу эти две строки одновременно.

clsAobj = [[clsA alloc] init];
[clsAobj someemethod];

Проблема в том, что при отладке после выполнения 1-й строки отладчик показывает память, выделенную для clsAobj, но после выполнения второй строкивыделенная память теряется и становится 0x0.Это верно при доступе к любому методу ClsA.

Может ли кто-нибудь помочь мне хотя бы понять эту дилемму?Спасибо.

Ответы [ 2 ]

0 голосов
/ 13 октября 2010

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

В качестве альтернативы, вы return self использовали метод init?

0 голосов
/ 13 октября 2010

Трудно сказать, что происходит, не видя, как реализованы clsA и someemethod.Мое лучшее предположение состоит в том, что метод init или alloc clsA возвращает nil (делая clsAobj nil после первой строки, а не второй), но без просмотра большего количества кода будет сложно дать вам более подробную обратную связь.

...