Использование завершения с 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 (завершено) закомментировано
Я использую это неверно, любая помощь очень ценится.
Спасибо
Ответы
Ответ 1
У меня была такая же проблема с анимацией. Я решил это, удалив -weak_library /usr/lib/libSystem.B.dylib
из других флагов Linker.
Кроме того, в соответствии с этим ответом, если вам нужен этот флаг, вы можете заменить его на -weak-lSystem
.