iphone - 如何关闭定位服务?

标签 iphone objective-c cocoa-touch cllocationmanager

如果用户开启了位置服务,我将我的 RootController 指定为它的委托(delegate):

appDelegate.clLocationManager.delegate = self;

其中 appDelegate 是我的应用程序委托(delegate)的一个实例,这是我拥有位置服务实例的地方。 clLocationManager 是 CLLocationManager 的一个实例。如果我发现用户不在某个区域,我想禁用位置服务委托(delegate)。我这样做:

appDelegate.clLocationManager.delegate = nil;

但是这个方法仍然会触发:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

是否有其他方法可以禁用定位服务或至少不触发其方法?

最佳答案

是的,你需要告诉它停止更新位置:

[appDelegate.clLocationManager stopUpdatingLocation];

之后你也可以释放它。

参见 the documentation了解详情。

关于iphone - 如何关闭定位服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2944664/

相关文章:

objective-c - 如何在 Objective C 中创建委托(delegate)者?

ios - 自动展开 UITableView - NSRangeException

IOS 如何传递变量 valet scheduledTimerWithTimeInterval

iphone - 如何将预先存在的 sqlite 文件导入核心数据?

android - 在移动网站中创建将打开二维码扫描仪的链接

ios - 恢复单个应用程序购买 iOS

ios - 带有 Core Audio AudioQueue 的 AVFoundation session

ios - iPhone 8 和 iPhone X 的不同视角

iphone - 带定时器的 NSOperationQueue

iphone - NSLog(@"%@", super )崩溃