我有一个应用程序,我使用CLLocationManager实例获取设备的位置。
现在,当我调用一个使用self.locationManager.location
的函数来获取tableview的每个单元格中的位置时。 tableview滚动是滞后和波涛汹涌。
但是,如果我关闭位置访问权限到应用程序,一切都很顺利!
我知道桌面视图通常滞后是因为http调用或图像下载处理不当,但如果是这种情况,如果关闭该位置也会发生同样的情况。
有人可以在这里说清楚吗?
在iOS 9.1和iOS 8.4上测试
已更新 cellForRow的代码....
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@“tableRow” forIndexPath:indexPath];
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObjectOrDoNothing: [AppLoc currentLatitude] forKey:@“latitude”];
[dict setObjectOrDoNothing:[AppLoc currentLongitude] forKey:@“longitude”];
[dict setObjectOrDoNothing:[NSNumber numberWithInteger:indexPath.row] forKey:@“content”];
[[AppManager serviceManager] postDataWithParams:dict];
return cell;
}
使用AFNetworking和lat发布数据时,long方法主要执行以下操作:
[[AppLocationsManager sharedInstance] currentLocation].coordinate.latitude;
[[AppLocationsManager sharedInstance] currentLocation].coordinate.longitude;
答案 0 :(得分:0)
你应该获得没有单元格的位置,然后调用tableview.reloaddata()
p / s:我认为你应该分享你的代码,这样很容易提供帮助
答案 1 :(得分:0)
因此,事实证明,locationManager.location
方法非常昂贵,特别是在高频率使用时(如此情况)。解决它。我从位置管理器缓存了该位置,并将所有应用程序组件,甚至表格单元格指向使用该缓存位置,而不是每次都在窃听位置管理器。
感谢您的帮助。