尝试使用lat,lng为sqlite DB绘制地图,但CANT在地图绘制之前获取我的位置。 UGGG!

时间:2009-10-25 16:06:05

标签: iphone sqlite mapkit

我能做什么: 取一个100 lat和lng点的sqlite DB,然后将这些引脚放在地图上。看起来很棒!

在绘制地图之前,我想要的是获取我的位置。但似乎:

  • (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

总是在AFTER(void)viewDidLoad运行时触发。无插入我插入的地方。

我需要做的是拥有一个启动画面,在那里停止直到我找到一个位置,使用该lat和lng来搜索我在这么多英里内的位置的sqlite DB。

我的追踪:

  
    
      

输入 - [RootViewController initWithTabBar]

             

输入 - [RootViewController viewDidLoad]

             

输入 - [RootViewController locationManager:didUpdateToLocation:fromLocation:]

    
  

这就是我真正想要的:

  
    
      

输入 - [RootViewController initWithTabBar]

             

输入 - [RootViewController locationManager:didUpdateToLocation:fromLocation:]

             

输入 - [RootViewController viewDidLoad]

    
  

现在我正在考虑(使用tabbarcontroller),不知怎的,我必须把它一直推回到我的app delegate?冻结整个应用程序,直到我找到一个位置?那是我最新的想法。

感谢任何提示,潜在客户,片段...... !!!我一直在寻找好几天,没有运气。

感谢!!!!

1 个答案:

答案 0 :(得分:1)

您绝对不想“冻结”该应用,并且您肯定希望尽可能少地在您的应用委托的applicationDidFinishLaunching:方法中工作。我可能会建议:

  • 有两个视图:一个是带有地图的“真实”视图,(大概)由一些视图控制器控制。另一个只是一个简单的“等待”视图,其中包含向用户发送的消息以及UIActivityIndicatorView或类似内容。
  • 当您的应用启动时,在应用窗口中加载并显示等待视图,然后启动位置管理器以查找用户的当前位置。
  • 当您获得足够的位置信息时,请加载实际视图,将其添加到窗口,然后删除等待视图。 (也许有一个很好的交叉渐变动画或其他东西。)

您还可以添加两个视图,只需在合适的时间翻转其hidden属性即可。但关键是要给用户一些东西,而不是试图对抗Core Location的固有异步性质。