好吧,讓我們想象一下,我有一個NSDate對象date
,這是過去,我想計算已經過去的秒數。這就是我要做的事:Swift中的簡單數學運算不能正常工作
let timeInterval = -date.timeIntervalSinceNow
然後我想分解到這分,秒及釐秒:
let seconds = Int(timeInterval) % 60
let minutes = Int(timeInterval - seconds)/60
let centiSeconds = Int((timeInterval - Int(timeInterval)) * 100)
除了編譯器抱怨的最後兩行,我不能找出原因。
對於minutes
行,它表示Could not find and overload for '/' that accepts the supplied arguments
,對於centiSeconds
行表示Could not find and overload for 'init' that accepts the supplied arguments
。我究竟做錯了什麼?在Swift-land中這不是可以接受的嗎?
如果Swift是類似於C或者Java的東西,那麼你不能這樣做:'Int(timeInterval - seconds)' - 表達式的類型覆蓋。嘗試'Int(timeInterval) - Int(秒)'(類型覆蓋甚至可能是多餘的)。 – usr2564301
@Jongware很好,在第二行工作。我將不得不考慮第三行的不同表達式,以便我不必對錶達式執行類型覆蓋。順便說一句,這個禁令背後的推理是什麼? – Alex