如何解决“二进制运算符”>'不能应用于两个'NSNumber'操作数“错误

问题描述:

我正在处理新作业中的一些Swift代码,并且在比较两个NSNumber的行上收到错误。该生产线是:如何解决“二进制运算符”>'不能应用于两个'NSNumber'操作数“错误

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

的错误是:

二元运算符“>”不能适用于两个“NSNumber的”操作数”

我使用的Xcode 7.1,代码编译成功同事的电脑上。我的期望是,斯威夫特应该自动拆箱NSNumbers,并且该行应编译。

+0

错误说''? – crashmstr

+0

对不起,我错误地从另外一行中提取错误。 –

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