JASidePanels освобождает память

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

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

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

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

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

1 ответ

Я думаю, что проблема с обработкой исключений. Try-catch вызывает утечки памяти в ARC. Подробности вы можете найти, например, здесь: /questions/38769834/pochemu-try-catch-v-objective-c-vyizyivaet-utechku-pamyati/38769852#38769852

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

Другие вопросы по тегам