Приложение ipad / iphone EXC_BAD_ACCESS только в симуляторе, а не на устройстве - PullRequest
0 голосов
/ 23 сентября 2010

Я был сегодня на сайте клиента и тут же сделал несколько исправлений ошибок.Я развернул рабочие копии приложения на их iPad и iPhone.Отлично.Я пришел домой и теперь запускаю приложение в симуляторе .... но оно каждый раз вылетает, и я не могу понять, как.К сожалению, я не вижу, что я изменил, что могло бы вызвать это.

Кто-нибудь знает, почему вы видите сообщение об ошибке Program received signal: “EXC_BAD_ACCESS” на симуляторе, а не iPad или iPhone?Я использую Xcode 3.2.4 с OS4.1 на iPhone 3GS и iPad 3.2.2 под OSX 10.6.4

Спасибо за любую информацию.Я вырываю свои волосы ....!

[обновить]

вот код, где он терпит неудачу

- (void)dealloc
{
if (_node)
    {
    if (_node->_private == self) //THIS IS THE LINE that debug is stopping on
        _node->_private = NULL;
    _node = NULL;
    }
//
[super dealloc];
}

Ответы [ 2 ]

1 голос
/ 24 сентября 2010

Есть ли шанс, что этот объект не будет сохранен должным образом?Память симуляторов используется очень быстро, поэтому, если счетчик удержания указателя становится равным 0, он будет переназначаться быстро, и при следующем доступе все может взорваться ... повторное использование памяти в моем случае медленнее на устройствах.В зависимости от типа объекта вы можете использовать CFGetRetainCount или [_node -> _ private retainCount] ;.Если объект все еще ломается, его нет.

0 голосов
/ 24 сентября 2010

Этот _Node используется странно.От вашего использования -> это, кажется, указатель.Но затем вы установите его в NULL.Это очень странный способ освободить указатель или удалить ссылку на него.

Вы освобождаете этот узел в другом месте?Может быть, _node освобождается до того, как это будет вызвано.Это создаст вам проблему, если вы попытаетесь работать с ним.

...