为什么我的单例中的CLLocationManager不起作用?我拿了这段代码http://jinru.wordpress.com/2010/08/15/singletons-in-objective-c-an-example-of-cllocationmanager/
根本没有改变他的代码(所以如果我应该在他的代码中添加一些内容让我知道)这是我的第一个单身人士。
- (CLLocationManager *)locationManager {
if (locationManager != nil) {
return [LocationController sharedInstance].locationManager;
}
self.locationManager = [LocationController sharedInstance];
[LocationController sharedInstance].locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
return [LocationController sharedInstance].locationManager;
}
(无效)viewDidLoad中 { [super viewDidLoad];
// Start the location manager.
[LocationController sharedInstance].delegate = self;
//[[self locationManager] startUpdatingLocation];
[[LocationController sharedInstance].locationManager startUpdatingLocation];
答案 0 :(得分:2)
我不太明白你想要在你的 - (CLLocationManager *)locationManager方法中实现什么。但是在LocationController.h的init函数中,你应该添加如下内容:
- (id)init
{
self = [super init];
if (self != nil) {
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
}
return self;
}
当你想在其他控制器中调用单例对象来更新位置时,你应该可以只调用:
[[LocationController sharedInstance].locationManager startUpdatingLocation];
请记住在控制器中实现委托方法 - (void)locationUpdate:(CLLocation *)位置。
如果我的帖子没有,希望这次会有所帮助。
答案 1 :(得分:0)
问题可能出在委托中。这指向文件,而不是单身。
答案 2 :(得分:0)
假设- (CLLocationManager *)locationManager
是LocationController
行的方法
self.locationManager = [LocationController sharedInstance];
将LocationController的单例实例分配给类型为self.locationManager
的{{1}}时,没有任何意义。
答案 3 :(得分:0)
以下是我所做的,您可以在github
上找到完整的示例。
https://github.com/irfanlone/CLLocationManager-Singleton-Swift