Swift小tips

便利构造函数:1>convenience开头,没有返回值 2>在构造函数中必须明确调用一个设计的构造函数(self)

Swift小tips_第1张图片
![Snip20170106_3.png](http://upload-images.jianshu.io/upload_images/1673100-7c8aa8d55e177a37.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

参数后面的= 是设置默认值,调用的时候可以只调用自己需要的参数

重写或自定义构造函数必须同步重写
required init?(coder aDecoder: NSCoder 函数

delegate 用weak修饰

闭包里面使用self避免循环引用用[weak self] in 或者 [ unowned self ] in

如果需要collectionView
根据父控件的大小而变化,
collectionView.autoresizingMask = [.flexibleWidth , .flexibleHeight]

协议的遵守

swift中协议是可以被类,结构体,和枚举所遵守的,所以在定义的时候可以定义为只被类准守: :class

这时修饰delegate的属性是weak 为了避免循环引用,

协议的方法默认是必须实现的,如果是可选实现的要加 optional参数,并且在协议前面要加@objc,在optional前也要加@objc

Swift小tips_第2张图片
Snip20170113_1.png

逃逸闭包
@escaping 在swift开发中,闭包如果不是在当前方法中直接使用,而是在其他的闭包或者方法中使用,就必须加@escaping关键字,表示逃逸闭包

闭包内部解决循环引用的问题:[weak self] [unowned self]

Swift小tips_第3张图片
Snip20170113_2.png

尾随闭包
如果方法的最后一个参数是闭包,可以该写为尾随闭包,就是将大括号中的闭包内容从小括号中抽离,放到方法后面

Snip20170113_3.png

如果闭包是唯一的参数,可以将()省略

Swift小tips_第4张图片
Snip20170113_4.png

你可能感兴趣的:(Swift小tips)