【发布时间】:2013-07-19 15:54:57
【问题描述】:
我有一个使用位置服务的应用程序。 在我的 appdelegate 中,我正在初始化我的位置管理器属性
if(self.locationManager == nil)
{
self.locationManager = [[[CLLocationManager alloc] init] autorelease]; // allocate cllocationmanager property
self.locationManager.delegate = self; // confirm the delegate
[self.locationManager startUpdatingLocation]; // start updating for location
}
并且位置管理器委托在 dealloc 方法中为零
- (void)dealloc
{
[_window release];
[_viewController release];
// [locationManager release];
self.locationManager.delegate = nil;
[super dealloc];
}
当我从设置中切换位置服务时,应用程序会崩溃 10 次
在仪器中调试后,这是显示的错误
请提出相同的修复建议。
【问题讨论】:
-
locationManager 属性是如何声明的?应用程序委托中的哪个方法是 locationManager 初始化的?这是应用中唯一声明的 CLLocationManager 吗?
-
它是从 - (void)applicationDidBecomeActive:(UIApplication *)application 和 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 调用的
-
这是我从管理器 - 控制台 - com.apple.launchd[1] 获得的日志:(UIKitApplication:com.neebal.Demo[0x51ec]) 作业似乎已崩溃:分段故障:20 年 7 月 11 日 18:06:56 backboardd[26] :应用程序 'UIKitApplication:com.neebal.Demo[0x51ec]' 异常退出,信号 11:分段故障:11
-
您实现了哪些委托方法?其中一些在 iOS6 中已被弃用。例如:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
标签: ios objective-c core-location