Swift:结果值在';?:';表达式的类型不匹配';类别';和';()';

Swift:结果值在';?:';表达式的类型不匹配';类别';和';()';,swift,Swift,我得到了这个错误: “?:”中的结果值表达式具有不匹配的类型“MySection”和“()”,其中MySection是一个类 在以下代码行中: let myVariable = mySection.rawValue == 0 ? myClass.doSomethingAtIndex:(index: indexPath.row) : myClass.doSomethingElseAtIndex(index: indexPath.row) 你们中的任

我得到了这个错误:

“?:”中的结果值表达式具有不匹配的类型“MySection”和“()”,其中MySection是一个类

在以下代码行中:

let myVariable = mySection.rawValue == 0 ?
            myClass.doSomethingAtIndex:(index: indexPath.row) :
            myClass.doSomethingElseAtIndex(index: indexPath.row)
你们中的任何人都知道我为什么会出现这个错误,或者我如何修复这个错误或者解决这个问题

我非常感谢您的帮助。

您有:

let myVariable = mySection.rawValue == 0 ?
            myClass.doSomethingAtIndex:(index: indexPath.row) :
            myClass.doSomethingElseAtIndex(index: indexPath.row)
应该是这样的:

let myVariable = mySection.rawValue == 0 ?
            myClass.doSomethingAtIndex(index: indexPath.row) :
            myClass.doSomethingElseAtIndex(index: indexPath.row)
注意我从doSomethingAtIndex和括号中删除的“:”(“

您有:

let myVariable = mySection.rawValue == 0 ?
            myClass.doSomethingAtIndex:(index: indexPath.row) :
            myClass.doSomethingElseAtIndex(index: indexPath.row)
应该是这样的:

let myVariable = mySection.rawValue == 0 ?
            myClass.doSomethingAtIndex(index: indexPath.row) :
            myClass.doSomethingElseAtIndex(index: indexPath.row)

注意我从doSomethingAtIndex和括号中删除的“:”(“

myClass.doSomethingAtIndex:(索引:indexath.row)中是否有额外的
?您需要查看myClass.doSomethingAtIndex和myClass.doSomethingElseAtIndex函数的返回类型。它们似乎返回不同类型的值,但不起作用。我认为DashBlinklight发现了它。您有一个不属于的冒号。是的,额外的“:”字符改变了整个语句。现在,
myClass.doSomethingAtIndex
是它在正确时会尝试的,而在不正确时会尝试
(index:indexath.row)
。@supportoftruth我正在尝试进行布尔比较,并选择其中一个或另一个,这就是问题的原因:“
myClass.doSomethingAtIndex:
中是否有额外的
?您需要查看myClass.doSomethingAtIndex和myClass.doSomethingElseAtIndex函数的返回类型。它们似乎返回不同类型的值,但不起作用。我认为DashBlinklight发现了它。您有一个不属于的冒号。是的,额外的“:”字符改变了整个语句。现在,
myClass.doSomethingAtIndex
是它在正确时会尝试的,而在不正确时会尝试使用
(index:indexath.row)
。@SupporterOfTruth我正在尝试进行布尔比较,并选择其中一个,这就是产生以下错误的原因:“