相关疑难解决方法(0)

如何声明一个符合协议的特定类的属性?

假设我想创建一个属性,它是UIViewController的子类,并且符合协议MyDelegateProtocol.在Objective-C中,我会写一些类似于:

@property (strong, nonatomic) UIViewController<MyDelegateProtocol> *delegate;
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何在Swift中写这个.我知道如何声明一个符合协议的属性,或者一个特定类型的属性:

let delegate : MyDelegateProtocol?
let delegate : UIViewController?
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何做到这两点.如果我尝试类似的东西:

let delegate : UIViewController<MyDelegateProtocol> ?
Run Code Online (Sandbox Code Playgroud)

然后我得到一个编译器错误Cannot specialize non-generic type 'UIViewController'.可能是因为我现在正在徘徊在仿制药领域.我试过通过Swift关于协议的协议和其他Stack Overflow问题的书,但我还没有找到我正在寻找的东西.

protocols ios swift

11
推荐指数
1
解决办法
972
查看次数

类和协议的 Swift 类型别名

我有一个必须是UIView也实现协议的变量MTMathKeyboard

我试过了,

var keyboard: (UIView & MTMathKeyboard)
var keyboard: UIView<MTMathKeyboard>
Run Code Online (Sandbox Code Playgroud)

实现协议的非泛型类实例的语法是什么?

types swift

5
推荐指数
2
解决办法
2956
查看次数

标签 统计

swift ×2

ios ×1

protocols ×1

types ×1