2011-10-11 25 views
1

我想表明我的屏幕航向精度上來負

if ([CLLocationManager headingAvailable]) { 
    CLController.locMgr.headingFilter = 0.1; 
    [CLController.locMgr startUpdatingHeading]; 
} 

它進入方法上的指南針,以及進入方法

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading { 
if (newHeading.headingAccuracy < 0){ 
    NSLog(@"heading accuracy < 0"); 
    return; 
} 
// Use the true heading if it is valid. 
CLLocationDirection direction = ((newHeading.trueHeading > 0) ? 
            newHeading.trueHeading : newHeading.magneticHeading); 

[self.delegate headingUpdate:direction]; 

}

此前據工作罰款,但不知道現在發生了什麼,

它顯示「標題準確性< 0」..

+0

我讀過Apple Doc ......他們寫道:「負值意味着報告的標題無效,這可能在設備未校準或存在來自本地磁場的強烈干擾時發生。」.. –

+0

看看這個[答案](http://stackoverflow.com/questions/1081219/optimizing-cllocationmanager-corelocation-to-retrieve-data-points-faster-on-the-i)。我可以幫助你 – Daniel

+0

我真的很抱歉,我無法從這個職位讓我的答案.. 我很困惑,前面這個程序是可以正常使用,但現在它給錯誤.. 一個更奇怪的事情,我安裝1個更多的應用程序在羅盤上,也沒有正常工作... 我想有一些設備設置的問題... 請幫我 - ..... –

回答

3

負向標準精度值僅僅意味着指南針此刻無法獲得良好的讀數。也許手機接近一些強磁場,或者你需要用數字8波形來校準指南針。這並不意味着你的代碼是不正確的。

只要忽略標題更新的標題精確度< 0,並且只使用您獲得的其他值。這是正常的行爲。