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

在Swift中符合ViewController中的协议

孔冥夜
2023-03-14
问题内容

尝试符合Swift UIViewController子类中的UITableViewDataSource和UITableViewDelegate。

class GameList: UIViewController {

    var aTableView:UITableView = UITableView()

    override func viewDidLoad() {
        super.viewDidLoad()
        aTableView.delegate = self
        aTableView.dataSource = self
        self.view.addSubview(aTableView)
        //errors on both lines for not conforming
    }

}

文件说,你应该在符合class行后:但那通常在超去。另一个:不起作用。在超类之后使用逗号分隔的列表也不起作用

编辑:

还必须采用每种协议的所有必需方法,而我最初并未这样做。


问题答案:

您使用逗号:

class GameList: UIViewController, UITableViewDelegate, UITableViewDataSource {
    // ...
}

但是要意识到,超类必须是逗号分隔列表中的第一项。

如果您未采用协议的所有必需方法,则会出现编译器错误。您必须获取所有必需的方法!



 类似资料:
  • 问题内容: 我试图在我快速编写的类上使用NSCoding协议,但是似乎无法弄清楚为什么当我实现所需的方法时,编译器会抱怨它“不符合协议NSCoding”: 这是一个错误还是我只是缺少一些东西? 问题答案: 如您在报告导航器中详细的编译器消息中所见,您的方法未正确声明: (在beta版本之间可能有所变化。)此外,该方法必须标记为: 在 Swift 3中 ,所需的方法是

  • 问题内容: 如何列出在Swift中实现给定协议的所有类? 说我们有一个例子: 这是我当前的(不可编译)方法: 但是当打电话给 要么 要么 导致Xcode错误:无法将类型(Animal.Protocol).Type的值转换为预期的参数类型’Protocol’。 有人设法使这个工作正常吗? 问题答案: 由于您使用的是Objective-C运行时来获取类型自省,因此需要以这种方式添加到代码中: 请注意,

  • 问题内容: 在Objective-C中: 在Swift中: 但是,将出现一条错误消息: 类型“ CellDatasDataSource”不符合协议“ NSObjectProtocol” 类型“ CellDatasDataSource”不符合协议“ UITableViewDataSource” 正确的方法应该是什么? 问题答案: 类型“ CellDatasDataSource”不符合协议“ NSOb

  • 问题内容: 我想创建一个具有某种类型并且也符合协议的属性,就像我在Objective-C中所做的那样: 我要寻找的是指定可以使用也符合CustomProtocol的UIViewController类型的对象设置属性,以便清楚什么是基类。我知道我可以只使用短类存根来获得相同的结果,即 但这似乎不是最干净的方法。 问题答案: 我想不出一种在Swift中表达这一点的好方法。类型的语法是: 类型→数组类型

  • 问题内容: 在Objective- C中,可以将符合协议的类指定为方法参数。例如,我可以有一个只允许符合的方法: 我找不到在Swift中执行此操作的方法(也许尚不可能)。您可以使用来指定多种协议,但是您又如何要求该对象属于特定类呢? 问题答案: 您可以将其定义为通用函数,并使用类型约束来同时要求类和协议。 斯威夫特4 Swift 3 (也适用于Swift 4) 迅捷2

  • 问题内容: 我知道如何快速创建单例类。创建单例类的最佳简便方法如下: 但是我不需要任何普通班的单身人士。我需要为viewcontroller类创建单例。所以我用这段代码创建单例 它给我附近的错误 似乎要我使用进行初始化。但是我应该通过什么参数或值? 问题答案: 如果您真的想为某个场景对应的视图控制器设置单例,则可能需要执行以下操作: 在此示例中,情节提要是,问题场景的情节提要标识符是。显然,将这​