2014-12-30 5 views
0

Я нахожусь на стадии разработки для приложения, которое использует элемент управления JASidePanels для отображения меню слева от приложения (приложение имеет 5 основных разделов).освобождение памяти JASidePanels

Я сейчас сильно полагаюсь на инструменты XCode, чтобы найти узкие места процессора и памяти, и я заметил, что переключить контроллер центрального представления, похоже, не освобождает память. Из-за этого, поскольку приложение используется, память растет, и запуск предупреждения о памяти, похоже, мало помогает.

Я использую следующий метод, чтобы переключить центральную панель, когда элемент из меню левой панели сливают на:

- (void)updateCenterViewControllerWithIdentifier:(NSString *)storyboardIdentifier; 
{ 
    @try { 
     self.centerPanel = [self.storyboard instantiateViewControllerWithIdentifier:storyboardIdentifier]; 
    } @catch (NSException *exception) { 
     DDLogError(@"%@", exception); 
    } 
} 

Если кто-то знаком с контролем и знает, что я, возможно, делаю неправильно, было бы замечательно иметь некоторые советы. Заранее спасибо

ответ

0

Я думаю, что проблема связана с обработкой исключений. Try-catch вызывает утечку памяти в ARC. Подробности вы можете найти здесь: https://stackoverflow.com/a/27142288/1073388

Другое дело, что вы не должны использовать обработку исключений для обработки проблем с загрузкой nib. Единственной проблемой, которая может вызвать исключение, является неправильное имя nib, но это может быть проверено и исправлено во время разработки. Исключения должны использоваться только в ситуации, когда исключительное поведение невозможно предсказать, и приложение должно быть прекращено после аномального выполнения блока кода.

Смежные вопросы