gpt4 book ai didi

ios - 无法将类型 '() -> Void' 的值分配给类型 '(() -> Void)!'

转载 作者:搜寻专家 更新时间:2023-10-31 22:13:16 24 4
gpt4 key购买 nike

更新到 xcode 8 beta 6 后,出现错误

Cannot assign value of type '() -> Void' to type '(() -> Void)!'

在下面的函数 block 中,第三行:

    // Button sub-class
public class SCLButton: UIButton {
var actionType = SCLActionType.none
var target:AnyObject!
var selector:Selector!
var action:(()->Void)!

public init() {
super.init(frame: CGRect.zero)
}

required public init?(coder aDecoder: NSCoder) {
super.init(coder:aDecoder)
}

override public init(frame:CGRect) {
super.init(frame:frame)
}

// required public init?(coder aDecoder: NSCoder) {
// fatalError("init(coder:) has not been implemented")
// }
}
public func addButton(_ title:String, action:()->Void)->SCLButton {
let btn = addButton(title)
btn.actionType = SCLActionType.closure
btn.action = action // here is where the error occurs
btn.addTarget(self, action:#selector(SCLAlertView.buttonTapped(_:)), for:.touchUpInside)
btn.addTarget(self, action:#selector(SCLAlertView.buttonTapDown(_:)), for:[.touchDown, .touchDragEnter])
btn.addTarget(self, action:#selector(SCLAlertView.buttonRelease(_:)), for:[.touchUpInside, .touchUpOutside, .touchCancel, .touchDragOutside] )
return btn
}

有任何修复建议吗?

最佳答案

您的问题似乎与此有关: SE-0103

尝试将 addButton(_:action:) 的方法头更改为:

public func addButton(_ title:String, action:@escaping ()->Void)->SCLButton {

来自新测试版的诊断消息像往常一样令人困惑和不足,但是让您的属性简单地成为非可选 var action:()->Void = {} 会给您带来更多有用的信息信息。

关于ios - 无法将类型 '() -> Void' 的值分配给类型 '(() -> Void)!',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39002126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com