ios – 无法转换为`AnyObject?`?

ios – 无法转换为`AnyObject?`?,第1张

概述在创建一个快速的iOS应用程序时,我需要在父视图控制器之外处理UIButton印刷机的事件,所以我创建了一个(非常简单的)协议来将该责任委托给另一个类: import UIKitprotocol MyButtonProtocol { func buttonPressed(sender: UIButton)} 但是,当我尝试将addTarget添加到具有该协议的UIButton时,我收到 在创建一个快速的iOS应用程序时,我需要在父视图控制器之外处理UIbutton印刷机的事件,所以我创建了一个(非常简单的)协议来将该责任委托给另一个类:
import UIKitprotocol MybuttonProtocol {    func buttonpressed(sender: UIbutton)}

但是,当我尝试将addTarget添加到具有该协议的UIbutton时,我收到此错误:无法将“MybuttonProtocol”类型的值转换为期望的参数类型“AnyObject?”.不应该有任何东西可以转换为AnyObject ??这是我的主要代码:

import UIKitclass MyVIEw: UIVIEw {    var delegate: MybuttonProtocol    var button: UIbutton    init(delegate: MybuttonProtocol) {        self.delegate = delegate        button = UIbutton()        //... formatting ...        super.init(frame: CGRect())        button.addTarget(delegate,action: "buttonpressed:",forControlEvents: .touchUpInsIDe)        addSubvIEw(button)        //... more formatting ...    }}

提前致谢.

解决方法 AnyObject是所有类符合的协议.
要定义只能由类采用的协议,请添加
:类到定义:
protocol MybuttonProtocol : class {    func buttonpressed(sender: UIbutton)}

没有这个修改,

var delegate: MybuttonProtocol

可以是struct或enum类型,也不能转换为AnyObject.

总结

以上是内存溢出为你收集整理的ios – 无法转换为`AnyObject?`?全部内容,希望文章能够帮你解决ios – 无法转换为`AnyObject?`?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1095157.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存