关于协议

2023-05-04  本文已影响0人  邢罗康



协议(Protocol)

protocol Runnable1: AnyObject {}
protocol Runnable2: class {}
@objc protocol Runnable {}
@objc protocol Runnable {
    func run1()
    @objc optional func run2()
    func run3()
}

class Dog: Runnable {
    func run3() { print("Dog run3") }
    func run1() { print("Dog run1") }
}

var d = Dog()
d.run1() // Dog run1
d.run3() // Dog run3
class Dog: NSObject {
    @objc dynamic func test1() {}
    func test2() {}
}

var d = Dog()
d.test1() // test1走的是objc_msgSend
d.test2() // test2走的是Swift虚表那一套





【从OC到Swift】



上一篇 下一篇

猜你喜欢

热点阅读