2017-03-24 76 views
0

我想將我看到的從0到360的磁頭數轉換爲弧度,所以我可以使用CGPoint。但是,此代碼會引發錯誤。如何將CLLocationManager.magneticHeading轉換爲弧度?

//Code to move on the X plane 
let heading = self!.locManager.heading 

let MagHeading = (heading?.magneticHeading)! * M_PI/180 //error 

我該如何將這個CLLocation值從標題轉換爲浮點數,以便將其轉化爲弧度? 錯誤是標題爲零。然而,沒有轉換它仍然產生價值

+2

你不覺得在你的問題中包含錯誤會有幫助嗎? – rmaddy

+0

該語法由Swift自動生成 – timedwalnut

+3

您確實需要花時間學習Swift選項。它們是正確使用Swift的關鍵。不要僅僅在各種代碼上打「'!」而不知道它的真正含義。 – rmaddy

回答

1

實際的問題和你的問題是完全不同的。你需要在那裏處理可選變量...但是你提到了double/float到弧度之間的轉換

試試這個......至少你的錯誤將會消失。

if let heading = self.locManager.heading { 

    let MagHeading = (heading.magneticHeading) * M_PI/180 
    print("MagHeading - \(MagHeading)") 

} else { 

    print("heading is nil") 

} 
+1

爲什麼在'self'之後使用'?'(或'!')? 'self'不能是'nil'。 – rmaddy

+0

同意你的意見...... – Krunal

+0

在這種情況下,它可以。如果不解開,它會拋出一個錯誤。 – timedwalnut