我正在构建的应用程序中几乎所有的视图控制器都需要CLLocationManager。有没有理由不把它放入全局变量(通过静态类的方式)?另一种选择似乎是为每个视图控制器单独设置(浪费)或将其传递给每个视图控制器(混乱)。
我通常设置一个共享实例并将其称为……"LocationManager"。您可以在此处查看旧版本:
https://gist.github.com/1603316
Xamarin Mobile API也是另一个值得同步的好项目。目标是创建一个共享库,抽象出GPS、加速计、联系人等的通用接口:
http://blog.xamarin.com/2011/11/22/introducing-the-xamarin-mobile-api/
更新:为了回答你的问题,我唯一能想到的不创建共享实例实现的原因是,如果你计划从一堆不同的线程访问它。为了在我的实现中解决这个问题,我只需创建线程安全的成员,这些成员具有线程安全的访问模式。