gpt4 book ai didi

objective-c - swift中objc的 `UIViewController`相当于什么?

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

我想声明一个接受采用特定协议(protocol)的 UIViewController 的函数。我如何快速声明它?

protocol MyProtocol {
func subtitle() -> String
func saveResults()
}

func setupViewController(controller: UIViewController<MyProtocol> ) { // ERROR here
...
}

我为什么要这样做:
因为我创建了一个容器 View Controller ,它有几个不同类的 child 。它们的共同点是 MyProtocol,当然它们继承(直接或间接)UIViewController

所以我的一个方法将其中一个 Controller 作为参数。我想告诉编译器最具体的信息:该对象是一个 UIViewController 并且符合 MyProtocol。我该如何申报?

最佳答案

我不太了解 objective-c,但它看起来甚至比在其中使用泛型来实现您的要求(不能肯定地说,因为我不知道 obj-c 中的泛型语法)。在 swift 中使用泛型,你的 setupViewController 函数应该是这样的:

func setupController<T:UIViewController where T:MyProtocol>(controller : T){

}

这在功能方面完全等同于 objective-c 的方法

关于objective-c - swift中objc的 `UIViewController<MyProtocol>`相当于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28744655/

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