Fix threading issue with AFNetworkActivityIndicatorManager.
Changed updateNetworkActivityIndicatorVisibilityDelayed to use the main run loop rather than the current run loop for its suppression timer. Also, avoided extra dispatch to the main queue when not needed.
This commit is contained in:
parent
7fda89e4a2
commit
a8210a93bb
@ -77,8 +77,8 @@ static NSTimeInterval const kAFNetworkActivityIndicatorInvisibilityDelay = 0.25;
|
||||
// Delay hiding of activity indicator for a short interval, to avoid flickering
|
||||
if (![self isNetworkActivityIndicatorVisible]) {
|
||||
[self.activityIndicatorVisibilityTimer invalidate];
|
||||
self.activityIndicatorVisibilityTimer = [NSTimer timerWithTimeInterval:kAFNetworkActivityIndicatorInvisibilityDelay target:self selector:@selector(updateNetworkActivityIndicatorVisibility) userInfo:nil repeats:NO];
|
||||
[[NSRunLoop currentRunLoop] addTimer:self.activityIndicatorVisibilityTimer forMode:NSRunLoopCommonModes];
|
||||
self.activityIndicatorVisibilityTimer = [NSTimer timerWithTimeInterval:kAFNetworkActivityIndicatorInvisibilityDelay target:self selector:@selector(updateNetworkActivityIndicatorVisibilityOnCurrentQueue) userInfo:nil repeats:NO];
|
||||
[[NSRunLoop mainRunLoop] addTimer:self.activityIndicatorVisibilityTimer forMode:NSRunLoopCommonModes];
|
||||
} else {
|
||||
[self updateNetworkActivityIndicatorVisibility];
|
||||
}
|
||||
@ -91,10 +91,14 @@ static NSTimeInterval const kAFNetworkActivityIndicatorInvisibilityDelay = 0.25;
|
||||
|
||||
- (void)updateNetworkActivityIndicatorVisibility {
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:[self isNetworkActivityIndicatorVisible]];
|
||||
[self updateNetworkActivityIndicatorVisibilityOnCurrentQueue];
|
||||
});
|
||||
}
|
||||
|
||||
- (void)updateNetworkActivityIndicatorVisibilityOnCurrentQueue {
|
||||
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:[self isNetworkActivityIndicatorVisible]];
|
||||
}
|
||||
|
||||
// Not exposed, but used if activityCount is set via KVC.
|
||||
- (NSInteger)activityCount {
|
||||
return _activityCount;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user