2015-03-06 4 views
2

Im using Crashlytics для управления сбоем. Я недавно получил этот крах, и я пытаюсь понять, почему произошел этот крах.Crashing on tableView reloadData содержит отчет о сбое

enter image description here

Вот мой UITableView+ReloadTransition.m:

#import "UITableView+ReloadTransition.h" 

@implementation UITableView (ReloadTransition) 
- (void)reloadDataWithFade:(BOOL)animated { 

    [UIView animateWithDuration:0.3 animations:^{ 
     self.alpha=0.0; 
    } completion:^(BOOL finished) { 
     [self reloadData];//line 17 
     [UIView animateWithDuration:0.2 animations:^{ 
     self.alpha=1.0; 
     }]; 
    }]; 
} 

Любая помощь очень рекомендуется? Я вроде новичок, когда дело доходит до краш-отчетов.

Обновление для дополнительной информации.

enter image description here

enter image description here

enter image description here

+0

Вы попробовали reloadData без анимации? Можете ли вы показать остальную часть потоков в отчете о сбое? – Spectravideo328

+2

Похоже, что проблема возникла при выполнении 'reloadData' после анимации, и, скорее всего, вы только что сделали операцию добавления/удаления с анимацией, и вы каким-то образом собрали количество разделов. –

+0

@HotLicks hmmm, interesting. В любом случае операции удаления не выполняются. – DevC

ответ

1

Попробуйте swizzling методы. Таким образом, я затушевываю вид таблицы при перезагрузке, надеюсь, что это поможет вам.

@implementation UITableView (Animation) 

+(void)load 
{ 
Method original, swizzle; 

original = class_getInstanceMethod(self, @selector(reloadData)); 
swizzle = class_getInstanceMethod(self, @selector(swizzled_reloadData)); 
method_exchangeImplementations(original, swizzle); 
} 

-(void)swizzled_reloadData 
{ 
[self swizzled_reloadData]; 

CATransition *transition = [CATransition animation]; 
transition.type = kCATransitionFromBottom; 
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]; 
transition.fillMode = kCAFillModeBackwards; 
transition.duration = 0.55; 
transition.subtype = kCATransitionFade; 
[[self layer] addAnimation:transition forKey:@"UITableViewReloadDataAnimationKey"]; 

} 

@end 
+0

спасибо, но он действительно не отвечает на вопрос. – DevC