CLLocationManager不会停止更新

时间:2011-12-10 12:01:37

标签: iphone objective-c xcode cocoa-touch cllocationmanager

这是我的代码:

- (void) viewWillAppear:(BOOL)animated
{    
    // SETUP THE LOCATION MANAGER. 
    self.locManager = [[CLLocationManager alloc] init];
    self.locManager.delegate = self;
    [self.locManager startUpdatingLocation];
}


- (void) viewWillDisappear:(BOOL)animated
{
   [self.locManager stopUpdatingLocation];
    [self.locManager.delegate release];
}

当View Controller退出CLLocationManager时,右上角的箭头标志仍然显示。这是在iOS 4.3和5.0上。有什么解释吗?

2 个答案:

答案 0 :(得分:0)

我相信系统会在过去一小时左右使用核心位置的任何应用上显示位置标记。

答案 1 :(得分:0)

一旦打电话,紫色箭头就会消失:

[self.locManager stopUpdatingLocation];

在分配locManager时,无需调用self.locManager。这会将保留计数提高到2.而是使用:

locManager = [[CLLocationManager alloc] init];

另外,在viewWillDisappear:方法中放置一个断点并确保它被调用。另外,在最后将委托设置为nil。 遵循这些要点后,您的代码将起作用。 紫色箭头用于定位服务并大量消耗电池。一旦调用stopUpdatingLocation,请确保箭头消失: