加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift class的虚函数表

发布时间:2020-12-14 05:00:20 所属栏目:百科 来源:网络整理
导读:class NSObjectBase: NSObject { ? ? func Msg_Normal(){ } ? ? func Msg_Second(){} ? ? func Msg_Third(){} ?? ? ? ? @objc func Msg_ObjcX(){} ? ? @objc dynamic func Msg_Objc_DynamicX(){ } ?? ? ? ? func callTest(){self.Msg_Normal()} ? ? func cal

class NSObjectBase: NSObject {

? ? func Msg_Normal(){ }

? ? func Msg_Second(){}

? ? func Msg_Third(){}

?? ?

? ? @objc func Msg_ObjcX(){}

? ? @objc dynamic func Msg_Objc_DynamicX(){ }

?? ?

? ? func callTest(){self.Msg_Normal()}

? ? func callAgain(){self.Msg_Third()}

}

?

extension NSObjectBase{

? ? @objc func OcExtensionFunc(){}

}

?

class DerivedOcClass:NSObjectBase{

? ? override func Msg_Normal() {}

? ? override func OcExtensionFunc(){}

? ? override func Msg_Objc_DynamicX() {}

}

?

swiftc -emit-sil BaseClass.swift | xcrun swift-demangle > ClassFunc.silgen

cat ClassFunc.silgen

?

?

class NSObjectBase : NSObject {

? func Msg_Normal()

? func Msg_Second()

? func Msg_Third()

? @objc func Msg_ObjcX()

? @objc dynamic func Msg_Objc_DynamicX()

? func callTest()

? func callAgain()

}

?

extension NSObjectBase {

? @objc dynamic func OcExtensionFunc()

}

?

class DerivedOcClass : NSObjectBase {

? override func Msg_Normal()

? override dynamic func OcExtensionFunc()

? override dynamic func Msg_Objc_DynamicX()

}

?

?

sil_vtable NSObjectBase {

? #NSObjectBase.Msg_Normal!1: (NSObjectBase) -> () -> () : @NSObjectBase.NSObjectBase.Msg_Normal() -> () // NSObjectBase.Msg_Normal()

? #NSObjectBase.Msg_Second!1: (NSObjectBase) -> () -> () : @NSObjectBase.NSObjectBase.Msg_Second() -> () // NSObjectBase.Msg_Second()

? #NSObjectBase.Msg_Third!1: (NSObjectBase) -> () -> () : @NSObjectBase.NSObjectBase.Msg_Third() -> () // NSObjectBase.Msg_Third()

? #NSObjectBase.Msg_ObjcX!1: (NSObjectBase) -> () -> () : @NSObjectBase.NSObjectBase.Msg_ObjcX() -> () // NSObjectBase.Msg_ObjcX()

? #NSObjectBase.callTest!1: (NSObjectBase) -> () -> () : @NSObjectBase.NSObjectBase.callTest() -> () // NSObjectBase.callTest()

? #NSObjectBase.callAgain!1: (NSObjectBase) -> () -> () : @NSObjectBase.NSObjectBase.callAgain() -> () // NSObjectBase.callAgain()

}

?

sil_vtable DerivedOcClass {

? #NSObjectBase.Msg_Normal!1: (NSObjectBase) -> () -> () : @NSObjectBase.DerivedOcClass.Msg_Normal() -> () [override] // DerivedOcClass.Msg_Normal()

? #NSObjectBase.Msg_Second!1: (NSObjectBase) -> () -> () : @NSObjectBase.NSObjectBase.Msg_Second() -> () [inherited] // NSObjectBase.Msg_Second()

? #NSObjectBase.Msg_Third!1: (NSObjectBase) -> () -> () : @NSObjectBase.NSObjectBase.Msg_Third() -> () [inherited] // NSObjectBase.Msg_Third()

? #NSObjectBase.Msg_ObjcX!1: (NSObjectBase) -> () -> () : @NSObjectBase.NSObjectBase.Msg_ObjcX() -> () [inherited] // NSObjectBase.Msg_ObjcX()

? #NSObjectBase.callTest!1: (NSObjectBase) -> () -> () : @NSObjectBase.NSObjectBase.callTest() -> () [inherited] // NSObjectBase.callTest()

? #NSObjectBase.callAgain!1: (NSObjectBase) -> () -> () : @NSObjectBase.NSObjectBase.callAgain() -> () [inherited] // NSObjectBase.callAgain()

}

?

?

class BaseClass {

? ? func NormalFunc(){}

? ? @objc func ObjcFunc(){}

? ? @objc dynamic func ObjcDynamicFunc(){}

}

?

extension BaseClass{

? ? @objc func ExtensionNormal(){}

? ? func ExtenNoneOcNormal(){}

}

?

class DerivedClass:BaseClass{

? ? override func NormalFunc() {}

? ? override func ObjcFunc(){}

? ? override func ObjcDynamicFunc(){}

? ? override func ExtensionNormal(){}

}

?

extension DerivedClass{}

?

class BaseClass {

? func NormalFunc()

? @objc func ObjcFunc()

? @objc dynamic func ObjcDynamicFunc()

? init()

? deinit

}

?

extension BaseClass {

? @objc dynamic func ExtensionNormal()

? func ExtenNoneOcNormal()

}

?

class DerivedClass : BaseClass {

? override func NormalFunc()

? override func ObjcFunc()

? override dynamic func ObjcDynamicFunc()

? override dynamic func ExtensionNormal()

? override init()

? deinit

}

?

sil_vtable BaseClass {

? #BaseClass.NormalFunc!1: (BaseClass) -> () -> () : @BaseClass.BaseClass.NormalFunc() -> () // BaseClass.NormalFunc()

? #BaseClass.ObjcFunc!1: (BaseClass) -> () -> () : @BaseClass.BaseClass.ObjcFunc() -> () // BaseClass.ObjcFunc()

}

?

sil_vtable DerivedClass {

? #BaseClass.NormalFunc!1: (BaseClass) -> () -> () : @BaseClass.DerivedClass.NormalFunc() -> () [override] // DerivedClass.NormalFunc()

? #BaseClass.ObjcFunc!1: (BaseClass) -> () -> () : @BaseClass.DerivedClass.ObjcFunc() -> () [override] // DerivedClass.ObjcFunc()

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读