Подтвердить что ты не робот

Код EXC_BAD_access = 2 адрес 0x8

У меня есть приложение, над которым я работал, который отлично работал на iOS 6 в XCode 4.5, но теперь я загрузил XCode 5 с iOS 7 и получил эту ошибку,

Тема 1: EXC_BAD_access код = 2 адрес 0x8

в main.m:

#import <UIKit/UIKit.h>
#import "TestAppDelegate.h"

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([TestAppDelegate class]));
    }
}

Я загрузил iOS 6 sdk, и код отлично работает на iOS 6 sdk yet, но с iOS 7, я получаю эту ошибку, и я не знаю почему? Я пытаюсь отладить это, но не получаю никакой информации о сбое. Я прочитал кое-что о зомби и включил его, перейдя в Продукт- > Изменить схему- > Диагностика- > Включить объект зомби. Но даже после этого я не получил ничего полезного.

Любые указатели?

4b9b3361

Ответ 1

Я хотел бы расширить подсказку, полученную Vinzzz, но немного отличающуюся (исключение не является символической точкой останова).

Проблема заключается в том, что программа останавливается на исключении, вызванном ОС (плохой доступ). Вам нужно пойти на один шаг раньше этого, чтобы увидеть исключение в коде, которое приведет к исключению iOS. Перейдите на вкладку точек останова на левой панели экрана Xcode (Breakpoint Navigator). Затем в нижней части панели должен быть знак+. Нажмите там и добавьте "Точка останова исключения". Перезапустите свою программу, и теперь вы должны быть остановлены, когда проблема будет предпринята для внедрения в среду ОС. Это дает информацию о том, кто и что является причиной.

Ответ 2

Когда вы попадете в приглашение (lldb), попробуйте нажать кнопку "Продолжить". Это может показать основное сообщение об ошибке в верхней части консоли отладчика. Найдите верхнюю часть жирного текста, чтобы узнать, что может вызвать проблему. Этот тип ошибки обычно относится к попытке доступа к объекту, который был освобожден.