当前位置: 首页 > 面试题库 >

快速协议,IBOutlet属性不能具有非对象类型

司空通
2023-03-14
问题内容

我想在IB中建立一个自定义的swift委托。委托是一个快速实现特定协议的对象。

protocol ThumbnailTableViewCellDelegate {
    func cellWasTouched(thumbnail: Bool, cell: UITableViewCell)
}

class ThumbnailTableViewCell: UITableViewCell {
    @IBOutlet var thumbnailTableViewCellDelegate: ThumbnailTableViewCellDelegate?
}

不幸的是,编译器抱怨:

error: 'IBOutlet' property cannot have non-object type 'ThumbnailTableViewCellDelegate'
    @IBOutlet var thumbnailTableViewCellDelegate: ThumbnailTableViewCellDelegate?
    ^~~~~~~~~

问题答案:

您必须将ThumbnailTableViewCellDelegate协议声明为@objc

@objc protocol ThumbnailTableViewCellDelegate {
    func cellWasTouched(thumbnail: Bool, cell: UITableViewCell)
}

这是因为@IBOutlet变量声明为weak,仅适用于对象。我不确定为什么不能只说协议符合AnyObject,这也许是Swift的错误。



 类似资料:
  • 我的代码返回这个错误"'NoneType对象没有属性'发送'" 这是我的密码 导入discord从discord导入操作系统。ext导入命令 客户=不和谐。客户() 类日志记录(commands.Cog):“为您设置日志记录” def设置(客户端):客户端。添加_cog(日志记录(客户端)) 我是在我的齿轮,而不是在主要。派克

  • 我一直在努力学习Python(目前的请求和美丽的soup4),我在网上找到了一个教程 问题是我一直得到下面的错误,根本无法弄清楚... 任何帮助都将不胜感激! 回溯(最近一次调用last):文件“C:\Users\BillyBob\Desktop\Web Scrap.py”,第14行,标题=a.string。strip()AttributeError:'NoneType'对象没有属性'strip'

  • 问题内容: 我正在为Swift 编写本教程:https : //www.raywenderlich.com/125311/make- game-like-candy-crush-spritekit-swift- part-1 并遇到以下代码: 我正是这样写的,但是Xcode给了我这些错误: 我从苹果的文档中找到了以下代码:https : //developer.apple.com/document

  • 问题内容: 以下代码使快速(3,3.1,4)编译器崩溃: 我可能天真地希望编译器将其推断为具有签名的Function Type ,之后,我可以这样称呼它: 我想我的问题是:显然,编译器应该执行除崩溃以外的其他操作,但是Swift目前应该支持这种语法吗? 问题答案: 如您所说,编译器永远不会崩溃;这确实是一个错误,已在此处提交。Swift团队成员Slava Pestov在其中说: 我们计划使MyPr

  • 我目前正在构建一个烧瓶应用程序 我能够从下面的stackoverflow留言板上得到这么远,但是我不认为我做对了什么(可能忽略了什么?) 在Flask应用中运行Dash应用 这里的任何帮助都将不胜感激 这是我的服务器。py代码: 这是我的服务器。py:从应用程序导入服务器,应用程序服务器。运行(调试=True) 当我运行这一切时,我得到:

  • 我正在尝试使用python创建一个discord bot,当我运行基本代码时,它会返回“AttributeError:'NoneType'对象没有属性'strip'”,我将遵循本教程。我有两个文件-机器人。py和bot。env(用于存储令牌)下面是两个文件:bot。py: 还有机器人。环境: 它应该显示“{bot name}已连接到不和谐!”我谷歌了错误,但找不到解决方案。