Подтвердить что ты не робот

Использование завершения с animateWithDuration вызывает exc_bad_access

Я пытаюсь анимировать 2 UIButtons в UITableViewCell, называемый addToPlaylist, и removeFromPlayList (они отображаются вправо после того, как они были удалены), и я использую блок следующим образом

[UIView animateWithDuration:0.25 animations:^{

    self.addToPlaylist.center      = CGPointMake(contentsSize.width + (buttonSize.width / 2), (buttonSize.height / 2));
    self.removeFromPlaylist.center = CGPointMake(contentsSize.width + (buttonSize.width / 2), (buttonSize.height / 2));
    myImage.alpha = 1.0;

}
 completion:^ (BOOL finished) 
 {
     if (finished) {
         // Revert image view to original.
         NSLog(@"Is completed");
         self.addToPlaylist.hidden       = YES;
         self.removeFromPlaylist.hidden  = YES;
         self.hasSwipeOpen               = NO;
     }
 }];

По завершении я хочу скрыть кнопки, чтобы попытаться уменьшить перерисовку прокрутки и т.д.

Этот код находится внутри '- (void) swipeOff', который вызывается в методе UITableViewControllers scrollViewWillBeginDragging следующим образом:

- (void)scrollViewWillBeginDragging:(UIScrollView *) scrollView
{
   for (MediaCellView* cell in [self.tableView visibleCells]) {
        if (cell.hasSwipeOpen) {
           [cell swipeOff];
        }
    }
}

Проблема заключается в коде завершения, если я удаляю его или устанавливаю в нуль, все это хорошо, если я включаю его, я получаю EXC_BAD_ACCESS. даже если я включаю его с любыми или всеми строками в пределах if (завершено) закомментировано

Я использую это неверно, любая помощь очень ценится.

Спасибо

4b9b3361

Ответ 1

У меня была такая же проблема с анимацией. Я решил это, удалив -weak_library /usr/lib/libSystem.B.dylib из других флагов Linker.

Кроме того, в соответствии с этим ответом, если вам нужен этот флаг, вы можете заменить его на -weak-lSystem.