大佬教程收集整理的这篇文章主要介绍了ios – 修复我的网络活动指标,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我为它编写了自己的经理并将其换成了一个使用NSAssert语句的人…
- (void)setNetworkActivityInDicatorVisible:(BOOL)setVisible { static NSInteger numberOfCallsToSetVisible = 0; if (setVisiblE) numberOfCallsToSetVisible++; else numberOfCallsToSetVisible--; // The assertion Helps to find progrAMMer errors in activity inDicator management. // Since a negative numberOfCallsToSetVisible is not a Fatal error,// it should probably be removed from production code. NSAssert(numberOfCallsToSetVisible >= 0,@"Network Activity InDicator was asked to hide more often than shown"); // Display the inDicator as long as our static counter is > 0. [[UIApplication sharedApplication] setNetworkActivityInDicatorVisible:(numberOfCallsToSetVisible > 0)]; }
我的所有网络活动都是通过一个由单例类管理的NSOperationQueue专门运行的.每个操作都是NSOperation的子类(实际上是TemplateOperation的子类,它是NSOperation的子类).
无论如何,所有的下载和上传工作正常,我这样做就像这样……
- (void)send@R_450_10613@est:(NSURL@R_450_10613@est *)@R_450_10613@est { NSError *error = nil; NSURLResponse *response = nil; [[NetworkManager sharedInstance] setNetworkActivityInDicatorVisible:YES]; NSData *data = [NSURLConnection sendSynchronous@R_450_10613@est:@R_450_10613@est returningResponse:&response error:&error]; [[NetworkManager sharedInstance] setNetworkActivityInDicatorVisible:NO]; // other stuff... [self processData:data]; }
重要的行是在我同步发送NSURLConnection之前和之后.
在我发送请求之前,我将网络活动指示器设置为可见(使用我的经理类),然后立即将其设置为不可见.
除了NSAssert指出,某些地方这种情况没有发生.
一种解决方案是添加一些同步指令(例如@synchronized)
你的方法.或者您使用原子递增/递减函数:
#include <libkern/OSAtomic.h> - (void)setNetworkActivityInDicatorVisible:(BOOL)setVisible { static volatilE int32_t numberOfCallsToSetVisible = 0; int32_t newValue = OSAtomicAdd32((setVisible ? +1 : -1),&numberOfCallsToSetVisiblE); NSAssert(newValue >= 0,@"Network Activity InDicator was asked to hide more often than shown"); [[UIApplication sharedApplication] setNetworkActivityInDicatorVisible:(newValue > 0)]; }
以上是大佬教程为你收集整理的ios – 修复我的网络活动指标全部内容,希望文章能够帮你解决ios – 修复我的网络活动指标所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。