【发布时间】:2014-06-11 15:12:03
【问题描述】:
我在 Objective C 中遇到问题(为 iPhone 编写应用程序)。我知道如何使用locationManager 及其代表。一旦我在locationManager 上调用startUpdatingLocation,它就会在位置更新时调用委托方法didUpdateToLocation。但问题是,这种方式现在适合我想做的事情。我有一个方法(在一个类中),如下所示:
@implementation SomeClass
- (someType)getDbContentsOrderByDistance
{
... //here I need the current location
return dbContents;
}
@end
现在这个函数从一个 sqlite 数据库中选择条目,按照它们到用户当前位置的距离排序。这就是为什么我需要这个函数中的位置。我在上面的方法中要做的是:获取位置,然后从数据库中选择东西并返回它。我知道我可以尝试访问locationManager.location.coordinate.longitude,但我知道在第一次位置更新到来之前,里面不会有任何有用的东西。而且我不想在之前(例如,在启动应用程序时)开始位置更新,因为如果我只需要一次位置,那将不是很有效。
我知道如何在位置更新到达时立即调用委托的方式来执行此操作。问题是我不知道如何将更新后的位置从那里获取到我上面的方法中。基本上我需要让方法“等待”直到第一次位置更新,然后继续使用该位置执行。
感谢您的帮助!
【问题讨论】:
标签: ios objective-c delegates location