swift 中delegate的使用

时间:2021-12-31 16:13:03

今天写了delegate,遇到以下问题:

swift 中delegate的使用

这里protocol的写法有问题,如果delegate指向一个实现了某个协议对象的引用,在oc里是这样写delegate的类型 id<protocol>,而在swift中,没有这种写法,应该像上面那样直接写出协议名,因此,协议声明应该这样写:

protocol MyPickerViewDelegate: NSObjectProtocol {

    func pickerConfirm(content:String)
}

这也是因为,除了class 外,struct和enum也能实现协议,但是他们都是值类型,不是引用类型,如果想使用weak,那么必须先让协议符合class的要求!

相关文章