2010-05-05 30 views
0

我在这里是新的, 我是新的iphone开发, 我是新的Objective-c ,我是新来的engligh说话,所以不要恨我:P使用来自另一个类的LocationManager

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

现在,我给locationManager属性添加到我的主类以及该类的.m中,正是在viewDidLoad方法中,我使用[locationManager startUpdatingLocation]。

这一切工作正常,但问题是: 我需要知道我的位置在主要的其他类,但我不认为这是一个好主意[locationManager startUpdatingLocation]每次我需要它,是不是时间开销?

我的主类的视图总是在其他类的下面,所以我可以在其他类中检索更新的位置吗?以什么方式?

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

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

回答

0

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

要获得除main之外的其他类中的初始位置,您可能需要引用主类并使用CLLocationManagerlocation属性检索它,因为观察者只会在位置发生更改时才会收到通知。

相关问题