У меня довольно большое приложение, которое работает в симуляторе, но создает его в сценарии с чрезмерным выпуском объектов на устройстве iPhone. Казалось бы, NSzombies - это путь, за исключением того, что объект не перепроизводится на симуляторе, а NSZombies не работает на устройстве. По прошествии нескольких часов регистрации я, кажется, могу зафиксировать это где-то между тем, когда я бегу -
[locManager startUpdatingLocation] и начало -
(void) locationManager: (CLLocationManager *) manager didUpdateToLocation: (CLLocation *) newLocation fromLocation: (CLLocation *) oldLocation
Это объясняет, почему он работает на симуляторе, я не обнаруживаю способности определения местоположения и не запускаю этот код местоположения.
Когда я запускаю NSLog непосредственно перед и после [locManager startUpdatingLocation], мой объект NSString выделяется и присутствует. Но когда приложение выполняется и оно обращается к locationManager: NSLog показывает, что NSString освобождена, пропала. Этот строковый объект не имеет абсолютно никакого отношения к обработке местоположения или функциональности. Несвязанный NSString. Я закомментировал все другие потенциальные действия, закомментировал весь явный код релиза и не могу найти момент, когда это произойдет.
Я также разочарован тем, что lldb, похоже, не поддерживает точки наблюдения, а gdb поддерживает их, но эта версия, похоже, не работает! GDB установит аппаратную точку наблюдения, а затем XCode сообщит, что работает, но через 30 минут визуальная активность или перерыв все еще отсутствуют.
Я на Lion, Xcode 4.1.1 и слишком много кофе.
Какой подход я должен использовать, чтобы найти этот освобожденный объект NSString в таком узком спектре деятельности и ограниченных инструментах?