【发布时间】:2013-06-28 02:11:32
【问题描述】:
有一个简单的应用程序可以获取gps location。我想在应用程序初始化之前获得一个 gps 位置。在我看来,GPS 位置是异步更新的,并且在弹出问题时,我确实在后台加载了应用程序屏幕:“允许应用程序使用您当前的位置吗?”
好吧,我怎样才能进行回调(对不起,来自 Ruby / JS 后台)等到我得到当前位置。
代码:
- (void)viewWillAppear:(BOOL)动画 { // 设置主视图以利用设备的整个应用程序框架空间。 // 更改此项以适应应用程序中视图的 UI 占用空间需求。 CLController = [[CoreLocationController alloc] init]; CLController.delegate = self; [CLController.locMgr startUpdatingLocation]; self.view.frame = [[UIScreen mainScreen] applicationFrame]; [超级viewWillAppear:动画]; }在CoreLocationController.m
【问题讨论】:
-
您是否需要在应用首次加载之前以及用户允许您的应用使用他们的位置之前执行此操作?为什么你需要这个(只是好奇)?
-
我需要在屏幕加载之前完成它,因为我使用的是sencha touch,并且应用程序严重依赖地图,所以问题首先出现在应用程序在后台加载时。如果用户等待超过 2 秒,应用就会崩溃 :( 这有意义吗?
-
嗯,这听起来像是一个糟糕的设计。首先,你为什么要强迫你的应用程序崩溃?另请注意,如果用户未明确允许您的应用使用其位置,iOS 将不向您的应用提供位置信息。您还需要处理用户拒绝位置访问的可能性。但是,即使您的应用不在前台(如果用户允许),iOS 也允许您获取用户的位置。
标签: iphone ios objective-c gps