你看我都会写啊:
blog.crazyphper.com比如上个周末,我英语不好,第一次购买 ssl 证书,非常谨慎,倒出问人,配置中也发生了问题。但也折腾好了,赶紧写个攻略,方便他人也方便自己下次忘了的时候可以查阅。
你再看看我学习 swift 的笔记(有样式的,这里没有了),因为我了解我自己,所以我选择用我能理解的方式快速记录,方便下次能快速回忆,做笔记是良好的习惯:
构造器
* 可失败构造器是唯一有返回值并且返回值是 nil 的构造器,因此要写成 init?(){}
* 便捷构造器是适用于类类型 convenience init(){} 或者 convenience init!(){} 可失败便捷构造器;在便捷控制器里可以使用 self.init()调用本类的其它构造函数。
* 成员构造器,在类中不使用构造器,则可以直接在实例时,将实例成员参数名写在递交参数上,做为初始化用,比如: ClassName(name:”熊”,age:” 22 ”)
*
值类型(structure , enumeration)赋值给变量 /常量时,是值的副本。而类(class)的实例传递的是自身。
实例类型引用关系
* 默认情况下,实例类型的引用关系均为强引用。
* 如果被指向的实例有可能为 nil ,则使用弱引用。(如果用强引用,产生引用环则可能会产生内存泄露)“ week var 属性”必须是变量类型。原理解释:当所有强引用都注销时, Swift 会自动帮我们把弱引用改为 nil ,同时注销掉整个实例。
* 如果被指向的实例不为 nil ,则使用无主引用。申明符: unowned
* 如果在类属性使用闭包时,且闭包体内引用当前实例 self 而产生强引用环时,则使用捕获列表。写法:
lazy var someClosoureWithCaptureList(参数列表)->返回类型{
[捕捉列表类型 捕捉对象](参数)->返回类型 in
//闭包体
}
捕捉列表类型可以是 unowned 或 week ,捕捉对象如果有多个,用逗号分隔,一般来说是 self 。
如果闭包体当前所在的实例未来永远不会为 nil ,则使用无主捕获类型,否则使用弱引用捕获类型。
使用弱引用捕获类型时,捕获对象必须是解包形式,因为一旦使用弱引用,则表示当前实例必须是可选类型。
[weak self] in
if self!.template!=nil{}