没有显示

问题描述:

正如标题所说setNetworkActivityIndi​​catorVisible微调,这里的一些代码:没有显示

- (void)refreshMap { 
    NSLog(@"refreshing"); 
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; 
    lat = [[NSNumber numberWithDouble:myUserLocation.coordinate.latitude] stringValue]; 
    lon = [[NSNumber numberWithDouble:myUserLocation.coordinate.longitude] stringValue]; 

    NSString *url = [[NSString alloc] initWithFormat:@"http://mywebsite.com/geo_search.json?lat=%@&lon=%@", lat, lon]; 
    NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:url] 
               cachePolicy:NSURLRequestUseProtocolCachePolicy 
              timeoutInterval:60.0]; 
    [[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; 
    [url release]; 
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; 
} 

的网络活动指示灯(状态栏)在所有的(而不是在模拟器没有出现,也没有一个真正的设备上)。 我该如何解决这个问题?

除非您的代码将控制返回到runloop,否则UI将不会更新。因此,如果您使用相同的方法启用和禁用网络指示符,它将永远不会显示。解决的办法是打电话

[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; 
在您的网址连接委托方法( conectionDidFinishLoading:connection:didFailWithError:

+0

你还没有启动'NSURLConnection'。事实上,你甚至没有把它作为一个变量保存下来。 – 2011-06-05 22:10:26

+0

@Aleksader:连接以'-initWithRequest:delegate:'自动启动。 – 2011-06-06 09:44:07

+0

谢谢,完美:) – koichirose 2011-06-07 11:02:07