【问题标题】:Using LocationManager from another class than Main使用除 Main 之外的另一个类的 LocationManager
【发布时间】:2010-05-05 17:00:44
【问题描述】:

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

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

现在,我将 locationManager 属性赋予我的主类,并在该类的 .m 中,正是在 viewDidLoad 方法中,我制作:[locationManager startUpdatingLocation]。

一切正常,但问题是: 我需要知道我在除主要课程之外的其他课程中的位置,但我认为每次需要时都制作 [locationManager startUpdatingLocation] 不是一个好主意,这不是时间开销吗?

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

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

感谢您的关注,并为我糟糕的英语感到抱歉:)

【问题讨论】:

    标签: iphone objective-c geolocation


    【解决方案1】:

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

    要在除主类之外的其他类中获取初始位置,您可能必须引用主类并使用CLLocationManagerlocation 属性检索它,因为您的观察者只会在位置时收到通知变了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      • 2016-05-04
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      相关资源
      最近更新 更多