Как можно освободить объект, если это условие истинно? - PullRequest
1 голос
/ 13 декабря 2011

Я не понимаю, почему, если я проверяю

po [search searchResults]

Я получаю: message sent to deallocated instance 0x8835650

Даже если я проверяю объект после следующего оператора if:

if ([search searchResults]) {
   NSLog(@"[search searchResults] %@", [search searchResults]); // breakpoint here!

Я думал, что условие истинно, только если объект searchResults выделен.

спасибо

1 Ответ

0 голосов
/ 13 декабря 2011

Условие истинно, если search указывает на что-либо, кроме nil.

Даже если экземпляр освобожден, указатели на этого экземпляра не устанавливаются автоматически на nil.

Edit:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...