【问题标题】:Trying to plot a map using lat, lng for a sqlite DB, but CANT get my location before the map draws. UGGG!尝试使用 lat, lng 为 sqlite DB 绘制地图,但在绘制地图之前无法获取我的位置。哎呀!
【发布时间】:2010-12-09 22:14:24
【问题描述】:

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

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

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

总是在 (void)viewDidLoad 运行后触发。无论我在哪里插入它。

我需要做的是有一个启动画面,停在那里直到我得到一个位置,使用那个纬度和经度来搜索我的 sqlite 数据库在我这么多英里内的位置。

这是我的踪迹:

输入-[RootViewController initWithTabBar]

输入-[RootViewController viewDidLoad]

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

这就是我真正想要的:

输入-[RootViewController initWithTabBar]

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

输入-[RootViewController viewDidLoad]

现在我在想(使用 tabbarcontroller),我是否必须以某种方式将它一直推回我的应用程序委托?冻结整个应用程序,直到我得到一个位置?这是我最近的想法。

感谢任何提示、线索、sn-ps ... !!!我一直在寻找几天,没有运气。

谢谢!!!!

【问题讨论】:

    标签: iphone sqlite mapkit


    【解决方案1】:

    您绝对不想“冻结”应用程序,并且您绝对希望在应用程序委托的 applicationDidFinishLaunching: 方法中做的工作尽可能少。我可能会推荐:

    • 有两个视图:一个是带有地图的“真实”视图,(可能)由某个视图控制器控制。另一个只是一个简单的“等待”视图,向用户发送消息和UIActivityIndicatorView,或类似的东西。
    • 当您的应用启动时,加载并在您的应用窗口中显示等待视图,并启动位置管理器以查找用户的当前位置。
    • 当您获得足够的位置信息后,加载真实视图,将其添加到窗口中,然后移除等待视图。 (也许有一个不错的交叉淡入淡出动画之类的。)

    您也可以添加两个视图,并在正确的时间翻转它们的hidden 属性。但重点是为用户提供一些可以查看的内容,而不是试图与核心位置固有的异步特性作斗争。

    【讨论】:

    • 好的,我已经回到第一方了。为我的位置使用 plist 设置。更有意义。将处理我定义的区域(1 英里、2 英里等)内的第 2 轮查找位置。更多关注。 Objective-C,是的,多么冒险。 :-)
    • 嗯,基本答案是:您需要(有办法获取)从实现委托协议的任何对象到需要该信息的任何对象的引用。当然,如果它们是同一个对象,这是微不足道的,如果不是,则更复杂。我建议也许开始另一个问题来询问您的应用程序的架构。
    猜你喜欢
    • 2022-01-03
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多