摘要: Swift Intermediate Language (SIL) https://github.com/apple/swift/blob/master/docs/SIL.rst#witness-method 阅读全文
posted @ 2018-09-20 17:59 zzfx 阅读(324) 评论(0) 推荐(0) 编辑
摘要: VTables https://github.com/apple/swift/blob/master/docs/SIL.rst#vtables decl ::= sil-vtable sil-vtable ::= 'sil_vtable' identifier '{' sil-vtable-entr 阅读全文
posted @ 2018-09-20 17:48 zzfx 阅读(316) 评论(0) 推荐(0) 编辑
摘要: In this example: protocol MyProtocol { func testFuncA() } extension MyProtocol { func testFuncA() { print("MyProtocol's testFuncA") } } class MyClass 阅读全文
posted @ 2018-09-20 14:49 zzfx 阅读(158) 评论(0) 推荐(0) 编辑
摘要: Swift protocol extension method is called instead of method implemented in subclass protocol MyProtocol { func methodA() func methodB() } extension My 阅读全文
posted @ 2018-09-20 14:48 zzfx 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 1、v-table; class 2、WitnessTable protocol 3、消息派发。 @objc dynamic 阅读全文
posted @ 2018-09-20 11:51 zzfx 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 顶级修饰 次级修饰 赋值类型 存储类型 值类型 值类型 深拷贝 栈 值类型 引用类型 浅拷贝 堆 引用类型 值类型 浅拷贝 堆 引用类型 引用类型 浅拷贝 堆 复合引用类型会改变内部值类型的存储行为。 以上内容为推测 阅读全文
posted @ 2018-09-20 11:41 zzfx 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 运行时与动态是一个密切相关的概念: 动态加载; 动态类型识别; 动态派发; 内存管理; In the object-oriented programming languages, the runtime system was often also responsible for dynamic ty 阅读全文
posted @ 2018-09-20 11:06 zzfx 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 两种参数传递方式 值类型 传递的是参数的一个副本,这样在调用参数的过程中不会影响原始数据。 引用类型 把参数本身引用(内存地址)传递过去,在调用的过程会影响原始数据。 在 Swift 众多数据类型中,只有 class 是引用类型,其余的如 Int、Float、Bool、Character、Array 阅读全文
posted @ 2018-09-20 11:04 zzfx 阅读(457) 评论(0) 推荐(0) 编辑