2015-11-02 69 views
1

我正在處理新作業中的一些Swift代碼,並且在比較兩個NSNumber的行上收到錯誤。該生產線是:如何解決「二進制運算符」>'不能應用於兩個'NSNumber'操作數「錯誤

if let endOffset = offsets.endOffset where clip.sessionOffset > offsets.startOffset 

的錯誤是:

二元運算符「>」不能適用於兩個「NSNumber的」操作數」

我使用的Xcode 7.1,代碼編譯成功同事的電腦上。我的期望是,斯威夫特應該自動拆箱NSNumbers,並且該行應編譯。

+0

錯誤說'<'但該代碼'>'? – crashmstr

+0

對不起,我錯誤地從另外一行中提取錯誤。 –

回答

4
import Foundation  
let a: NSNumber = 1 
let b: NSNumber = 2 
let c = a 

a.compare(b) == .orderedAscending // true 
b.compare(a) == .orderedDescending // true 
a.compare(c) == .orderedSame  // true 
+0

有關爲什麼代碼在我的同事的計算機上編譯但不在我的計算機上的任何想法? –

+0

@CarlSmith幾乎沒有說什麼,有一百萬種不同的可能原因。 –

+0

你可以爲它定義運算符,也許它是在你的同事電腦的源代碼中的某處完成的......也許sessionOffset,startOffset不是NSNumbers ... – user3441734

相關問題