Мое приложение, в котором используется контроллер UINavigation, заканчивается отображением числовых данных для пользователя.
Проблема в том, что вычисления будут правильными, только если пользователь перейдет непосредственно к экрану расчета, не нажимая кнопку "Назад". Если в любой момент нажать кнопку «Назад», даже после выполнения вычислений некоторые значения будут повреждены.
Например, первый запуск с правильными значениями:
2011-06-17 23:52:16.644 BlahBlah [19690:207] A = 146.000000 and B = 6.000000
И результат, если в любой момент во время программы была нажата кнопка «Назад»:
2011-06-17 23:54:05.888 BlahBlah [19690:207] A = 146.000000 and B = 4.012038
Значения останутся поврежденными даже при последующих перерасчетах и исчезнут, только если программа будет полностью перезапущена (т. Е. Мне придется нажать «build» и запустить снова в Xcode).
Я обычно пишу на языках сценариев, и поэтому я предположил, что это проблема управления памятью, из-за отсутствия у меня опыта работы с Obj C. Однако я изучил код, гарантируя, что каждый alloc / new имеет выпуск и т. д. Я запустил отладчик, которому нечего рассказать об этой части кода. Я полностью застрял в этой точке.
Мой вопрос - что я делаю не так и как я могу исправить эту проблему?
Любая помощь приветствуется.
Дополнительная информация - так я передаю переменные. myProfile является экземпляром объекта с атрибутами A и B, которые являются двойными.
CalculateView *CalculateView = [[CalculateView alloc] initWithNibName:@"Calculate" bundle:nil];
CalculateView.myProfile = myProfile;
[self.navigationController pushViewController:CalculateView animated:YES];
Я должен также упомянуть, что значения для A и B загружаются из списка.