2012-02-03 91 views
1

所示只是为了测试它,我启用了状态栏的活动的指标如下:网络活动指示灯不亮iPhone(iOS 5中)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible: TRUE]; 

    //... 
} 

我从来没有禁用指示器,它应该永远是可见的,但事实并非如此。它在iPhone模拟器中可见,但不在设备上。为什么?

+0

您是否在代码中的任何其他位置禁用指示器(不一定在应用程序委托中)? – Mutix 2012-02-03 13:23:04

+0

不,其他地方。 – Waterman 2012-02-03 15:48:56

+0

这是否仅在iOS 5设备上发生?你能在4.3设备上重现这一点吗? – Mutix 2012-02-03 16:34:57

回答

2

请不要在拨打电话didFinishLaunchingWithOptions时应用程序不活动。您应该将其移至viewDidLoad方法。因此,代码应该看起来像这样:

- (void)viewDidLoad { 
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; 
    // Some other code goes here... 
    [super viewDidLoad]; 
} 

或者你可以把这个代码放在视图已经加载的任何地方。一旦数据加载完毕,不要忘记停止它。

+0

这真的很奇怪。我关掉了我的测试电话一天,因为我不得不在另一个项目上工作。今天我试了一下你的建议,它很有用。但是,如果我在didFinishLaunchingWithOptions中进行此调用,它也可以工作。我还注意到现在出现了WLAN图标,这也是我之前错过的。所以整个问题都消失了,但我不知道为什么。我已经尝试通过关闭和再次打开手机来尽早解决此问题。但这并不重要。唯一的区别是,手机现在已经关闭了更长的时间...?! – Waterman 2012-02-08 06:53:22

+0

_viewDidLoad_仅在应用程序终止时调用。所以你必须在测试之前终止应用程序。你应该真的看看你的应用程序,并在进行任何网络调用之前调用它。当您从服务器获得答案时,应该禁用网络指示器。 – 2012-02-08 07:35:48

+0

我不确定你的意思。每次加载新构建之前,应用程序都会终止。并且需要新的构建来测试更改。你的意思是别的吗? – Waterman 2012-02-08 09:10:18