【问题标题】:setNetworkActivityIndicatorVisible spinner not displayingsetNetworkActivityIndi​​catorVisible 微调器不显示
【发布时间】:2011-06-05 21:31:48
【问题描述】:

正如标题所说,这里有一些代码:

- (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];
}

网络活动指示器(在状态栏中)根本不出现(不在模拟器中,也不在真实设备上)。 我该如何解决?

【问题讨论】:

    标签: ios nsurlconnection uiapplication


    【解决方案1】:

    除非您的代码将控制权返回给运行循环,否则 UI 不会更新。因此,如果您以相同的方法启用和禁用网络指示器,它将永远不会真正显示。解决方法是调用

    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
    

    在您的 url 连接委托方法中(conectionDidFinishLoading:connection:didFailWithError:)。

    【讨论】:

    • 你也没有启动NSURLConnection。事实上,您甚至都没有将其保存为变量。
    • @Aleksader:连接自动以-initWithRequest:delegate: 开始。
    猜你喜欢
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多