使用来自Main之外的其他类的LocationManager

时间:2010-05-05 17:00:45

标签: iphone objective-c geolocation

我是新来的, 我是iphone开发的新手, 我是Objective-c的新手 我是新来的英语,所以不要恨我:P

我正在创建一个应用程序,它将使用位置管理器显示自己位置与商店列表位置之间的距离,例如AroundME。

现在,我将locationManager属性提供给我的主类和该类的.m,正是在viewDidLoad方法中,我做了:[locationManager startUpdatingLocation]。

一切正常,但问题是: 我需要知道我在其他课程中的位置而不是主要课程,但我不认为每次需要时都会做[locationManager startUpdatingLocation],这不是时间开销吗?

我的主要课程的视图总是低于其他课程,所以我可以在其他课程中检索更新的位置吗?以什么方式?

我想,创建我的主类的另一个实例是没用的,但是一旦启动,locationManager一直没有停止,直到我的主类被释放,是不是真的?所以我认为它可以通过某种方式访问​​。

感谢您的关注并对我可怕的英语表示抱歉:)

1 个答案:

答案 0 :(得分:0)

在这种情况下,我假设您将主类设置为CLLocationManagerDelegate。当位置更新时,您的代理将收到locationManager:didUpdateToLocation:fromLocation:消息,并且在该方法中,您可以使用NSNotificationCenter发布消息,其他类的实例可以将其自身添加为观察者。有关添加观察者和发布通知的详细信息,请参阅NSNotificationCenter location

要获得除main之外的其他类的初始位置,您可能必须引用主类并使用CLLocationManager {{1}}属性检索它,因为您的观察者只会收到位置发生变化时的通知。