Swift小tips

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

![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

Snip20170113_1.png

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

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

Snip20170113_2.png

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

Snip20170113_3.png

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

Snip20170113_4.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、范型范型所解决的问题 函数、方法、类型:类,结构体,枚举,元组类型,协议参数,返回值,成员函数参数,成员属性类...
    我是小胡胡123阅读 853评论 0 1
  • Hello Word 在屏幕上打印“Hello, world”,可以用一行代码实现: 你不需要为了输入输出或者字符...
    restkuan阅读 3,210评论 0 6
  • 1. string拼接 swift中拼接字符串有两种方式1.使用+号进行两个字符串的相加,但是要都是非可选类型的字...
    Zongzi_599阅读 753评论 0 0
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,869评论 1 10
  • 我尤为憎恨小偷! 昨天的时候,听公司同事说,她的车子后面的挡风玻璃被砸了,才离开十分钟左右,就被砸了。丢失了大量的...
    OO碰到OO阅读 251评论 0 0