这个问题你解决了吗
组件化之路---Swift如何创建Framework(1)动态库与静态库 什么是静态库 静态库(Static Library),可以将它理解为一个二进制文件,通过公共的 .h 文件,可以获取到 .a 中暴露的方法或者属性等。在最后编...
一.Swift中的framework 我们知道,在Swift项目中要想使用OC代码,必须要使用 -bridge-header.h。将OC桥接给Swift。 但是在framew...
一..swiftmodule 相当于就是Swift的头文件,通过.swiftmodule外界访问framework中的类/函数 我们都知道OC代码调用Swift代码需要使用 ...
一.String源码 1.Swift中String在内存中是如何存储的 这里我们定义了一个空字符串,想要通过内存信息来查看关于String的内存信息 发现只有一个0xe000...
一.泛型语法 1.函数中使用泛型 泛型的基本语法,首先我们要指定一个占位符T(占位符也可以为其它字符),紧挨着写在函数名后面的一对尖括号(当前我们这个T要遵循Floating...
一.协议与继承 那么最直观也是最简单的办法就是,给每一个类添加一个debug函数 如果我们对当前代码中的每个类都需要添加debug函数,显然上面这种方法是行不通的,于是有了下...
一.@convention 之前在执行vtable取出的函数地址时,使用到了@convention 用于修饰函数类型 修饰Swift中的函数类型(调用C函数的时候) 调用OC...
一.函数类型 函数本身也有自己的类型,它由形式参数类型和返回类型组成 通过LLDB分析函数a和函数b 总结:函数在Swift中也是引用类型。 源码中关于函数的Metadata...
一.元类型、.self和Self 1.AnyObject AnyObject代表任意类的实例,类的类型,仅类遵循的协议。 2.T.self T.self如果T是实例对象,T....
一.Enum 1.Enum基本信息 Swift中通过enum关键字来声明一个枚举 在C或者OC中默认受整数支持,也就意味着下面的例子中:A,B,C分别默认代表0,1,2 Sw...
一.为什么说指针不安全 比如我们在创建一个对象的时候,是需要在堆分配内存空间的。但是这个内存空间的声明周期是有限的,也就意味着如果我们使用指针指向这块内容空间,如果当前内存空...
一.存储属性 存储属性是一个作为特定类和结构体实例一部分的常量或变量。存储属性要么是变量存储属性(由var关键字引入)要么是常量存储属性(由let关键字引入)。 这里的age...
一.异变方法 1.值类型方法 Swift中的class和struct都能定义方法。但是有一点区别的是默认情况下,值类型的属性不能被自身的实例方法修改。 代码会报错,因为在mo...
1.类与结构体的异同 主要的相同点: 定义存储值的属性 定义方法 定义下标以使用下标语法提供对其值的访问(点语法访问值) 定义初始化器 使用extension来拓展功能 遵循...
1.这里创建一个Flutter项目(App) 使用Xcode[https://developer.apple.com/xcode/]打开其中的iOS工程 打开Generate...
一.下载渲染引擎 1.下载引擎时需注意的点 路径不能有中文 工具(后续用到的下载工具)所在的目录需要有可执行权限 2.查看当前Engine版本flutter doctor -...
混合开发一般分2种 Flutter调用原生项目代码(MethodChannel、BasicMessageChannel、EventChannel)MethodChannel实...
一.引入key的概念 这里有一个小demo 每次点击按钮,删除第一个Widget 1.使用StatefulWidget 文字显示正常,但是Widget的颜色却是不正常的 看起...
Flutter并不是渲染Widget树的,因为每一次build都会重新创建,极其不稳定,因此渲染Widget树是非常浪费性能的 并不是所有的Widget都会被独立渲染,只有继...