1
locationManager = [[CLLocationManager alloc] init];

locationManager.delegate = self;

locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move

locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m

[locationManager startUpdatingHeading];

当我在 viewWillAppear 中使用此代码时,我有时会遇到此警告,因此没有调用的委托方法

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading 
4

2 回答 2

0

我认为您使用以下代码嵌入您的代码...

locationManager = [[CLLocationManager alloc] init];

locationManager.delegate = self;

locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move

locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m

[locationManager startUpdatingHeading];

您在分配 locationManager 对象后首先定义startUpdatingHeading方法....所以可能是关于此错误的问题....如果再次出现此问题,请留下评论....希望这对您有所帮助.... :-)

于 2012-04-23T11:39:46.723 回答
0

您的-viewWillAppear:方法中的某些内容比显示您的视图的动画花费的时间更多。如果是这样,CLLocationManager也许您可​​以从后台线程或运行循环的下一轮启动它。

dispatch_queue_t q = /* bg queue or main queue */
dispatch_async(q, ^{
    /* your CLLocationManager code */
});
于 2012-04-23T14:46:06.107 回答