ios - didUpdateLocations 只调用一次然后停止触发

标签 ios objective-c iphone core-location

我想制作一个简单的 IOS 6.0 应用程序,每次更改位置时都会在屏幕上显示纬度/经度。 ViewController 文件非常简单。

我分配一个 CCLocationManager 对象,设置它的变量并启动它。 didUpdateLocations 被调用一次或两次,然后它停止被触发,即使 iPhone 被移动。如果我按下主页按钮并重新打开应用程序,屏幕上的数据会在再次停止之前更新一次或两次。 在模拟时它工作正常但不是在真正的 3GS iPhone 上。

如果我取消注释 didUpdateLocations 中的启动/停止并连续停止和启动该服务,它可以工作,但电池会以极快的速度耗尽。

此外,这是一个更大项目的一部分,每次更改位置时都必须调用 didUpdateLocations。

ViewController.h

#import <CoreLocation/CoreLocation.h>
@interface ViewController : UIViewController
@property (nonatomic , strong) CLLocationManager *locationManager;
@property (weak, nonatomic) IBOutlet UILabel *lbl;
@end

ViewConroller.m

#import "ViewController.h" @interface View Controller ()

@结束

@implementation ViewController -(无效)viewDidLoad { [ super viewDidLoad]; _locationManager = [[CLLocationManager 分配] 初始化]; _locationManager.delegate = self; _locationManager.distanceFilter = kCLHeadingFilterNone;//每当我们移动 _locationManager.desiredAccuracy = kCLLocationAccuracyBest; _locationManager.PausesLocationUpdatesAutomatically = NO; [_locationManager startUpdatingLocation]; } - (void)didReceiveMemoryWarning { [ super didReceiveMemoryWarning]; } -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { CLLocation *newLocation = [locations lastObject]; _lbl.text=[NSString stringWithFormat:@"%lf %lf",newLocation.coordinate.latitude, newLocation.coordinate.longitude]; //[_locationManager stopUpdatingLocation]; //[_locationManager startUpdatingLocation]; } @结尾

如果有任何错误的建议,我会欢迎它,我已经失去了一个星期没有解决它。

顺便说一句,我已经测试了 _locationManager 变量的各种值,但没有对行为进行任何更改

附加信息: 应用程序被授权使用定位服务 应用程序在前台

最佳答案

根据我在 iOS 上基于位置的编程的经验,针对类似问题的一些提示。

  • 如果它在模拟器上工作,那么它应该在实际设备上工作 好吧。
  • 与模拟器不同,实际设备只有在从 GPS 接收到新信息时才会进行更新。
  • 在很多情况下,您无法在设备上获得足够/所需的更新,例如当您在建筑物(或覆盖区域)中时
  • 尝试在开放空间测试应用(GPS 在开放空间比在房间/房子/大型建筑物中工作得更好)。

附言。我不知道您移动了多少,但只是想让您知道,移动几步并不能确保您会获得新的位置更新,请尝试在某些车辆(自行车/汽车/公共(public)汽车)上使用它。

关于ios - didUpdateLocations 只调用一次然后停止触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25812998/

相关文章:

iphone - iOS:存档失败

iphone - UIAlertViewDelegate 方法 didDismissWithButtonIndex 在手机 sleep /锁定时被调用

ios - 在不离开应用程序的情况下打开 App Store 链接,可能吗?

ios - 删除 iOS 联系人组

iphone - 无法获取Google Analytics(分析)API来在iPhone上注册页面浏览量

iphone - 5000+ CoreData 查询最大化 iPhone CPU 和滞后显示

objective-c - 为什么我收到有关 NSMutableArray 不兼容指针类型的警告?

ios - 我可以在 iOS 后台获取中进行网络调用吗?

ios - 无法遍历数组

objective-c - 带有核心数据的 iPhone 应用程序。如何连接和交换数据?