Может ли этот фрагмент кода вызвать какие-либо проблемы с точки зрения памяти?

#iphone #ios #memory-management

#iPhone #iOS #управление памятью

Вопрос:

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

  - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];


        self.navigationItem.title = @"Add Recipients";

        self.navigationController.toolbarHidden=NO;


        UIBarButtonItem            *localItem;
        UIBarButtonItem            *remoteItem;


        localItem = [[ UIBarButtonItem alloc ] initWithTitle: @"Local"
                                                       style: UIBarButtonItemStyleBordered
                                                      target: self
                                                      action: @selector( localRecipients: ) ];



        remoteItem = [[ UIBarButtonItem alloc ] initWithTitle: @"Remote"
                                                        style: UIBarButtonItemStyleBordered
                                                       target: self
                                                       action: @selector( remoteRecipients: ) ];


        self.toolbarItems = [ NSArray arrayWithObjects: localItem,remoteItem,nil ];

        [localItem release];
        [remoteItem release];


    }


    - (void)viewWillDisappear:(BOOL)animated {
        [super viewWillDisappear:animated];

        self.navigationController.toolbarHidden=YES;



}
  

Ответ №1:

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

если вы сохраняете toolbarItems , попробуйте использовать приведенный ниже код.

 self.toolbarItems = nil ;
self.toolbarItems = [ NSArray arrayWithObjects: localItem,remoteItem,nil ];
  

Ответ №2:

Вы несете ответственность за освобождение созданных вами объектов. Поскольку вы не создавали панель инструментов, вы не несете ответственности за ее выпуск.