我的目标是在不同的类中返回函数的bool值。错误是声称该功能是可选的,但我不明白它是如何选择的。我甚至试图强制打开它,但它给了我错误"'() - >布尔'不能转换为Bool'"。
我在类声明上面的ManageCaptureVC文件中有我的协议:
protocol ManageCaptureVCDelegate: class {
func selectedInterfaceOrientationIsLandscape() -> Bool
}
我在ManageCapture类中定义的委托:
weak var delegate: ManageCaptureVCDelegate?
我的if语句试图检查bool值:
if self.delegate?.selectedInterfaceOrientationIsLandscape {
/*code*/
}
委托类中的原始函数是:
func selectedInterfaceOrientationIsLandscape() -> Bool {
if(selectedInterfaceOrientation == interfaceOrientations.landscapeLeft ||
selectedInterfaceOrientation == interfaceOrientations.landscapeRight){
return true
}
return false
}
答案 0 :(得分:2)
您需要调用该函数,而不是引用该函数。
变化:
if self.delegate?.selectedInterfaceOrientationIsLandscape {
为:
if self.delegate?.selectedInterfaceOrientationIsLandscape() {
但是由于你使用的是可选链接,它应该是:
if self.delegate?.selectedInterfaceOrientationIsLandscape() ?? false {