Swift3.0 技巧知识点杂集

前言:废话没有,直接上干货,持续更新。。。
查看目录
1.颜色技巧
2.Xcode8新增注释
3.??的用法
4.if let / var 连用(可选绑定)
5.OC方法解决循环引用
6.重写和重载
7.stroyboard中使用静态cell
8.注释快捷键
9.加载HTML5方法优劣(简单)解析
// : MARK — NO.1 颜色技巧
Swift3.0 技巧知识点杂集_第1张图片
Snip20161028_9.png
// : MARK — NO.2 Xcode8新增注释:
// TODO :XXXX
// FIXME :XXXX
// : MARK — NO.3 ??的用法
func demo ( ) {
  let name: String? = “tmac”
 print( ( name ?? “” ) + “你好" )
//解释一下:由于这个name是可选类型,所以不能和字符串类型”你好”直接拼接,但我们又不能去强制解包name,万一name是nil程序就会崩掉。
所以我们用??,就是说当name有值的时候就用name,没有值就用??后面的代替
}
// : MARK — NO.4 if let / var 连用(可选绑定)
#if let 连用,判断对象的值是否为nil,{}内一定有值,可以直接使用,不需要解包
# if var 连用,{}内可以对值进行修改
func demo ( ) {
 let str1 : String? = “kobe”
 let str2 : String? = “tmac”
if let name1 = str1 , 
  let name2 = str2 {
//能来到{}中就说明name1和name2已经有值了,不需要强制解包 
print(name1 + name2)
}

}


// : MARK — NO.5 OC方法解决循环引用
#OC
weak var weakSelf = self

#Swift — 在{}中加上 [weak self ] in 表示在{}中的所有 self 都是弱引用
// : MARK — NO.6 重写和重载
#重写:是父类有此方法,而不能满足子类,在此方法上重写
override init()
#重载:函数名相同,但是参数和个数不同,重载可以给自己的属性从外部设置初始值
init(name:String)
#注:如果重载了构造函数,且没有实现父类 init 方法,系统不再提供init()构造函数,必须要重写父类的才有:
override init()
 {
    super.init()
 }
// : MARK — NO.7 stroyboard中使用静态cell
#只有在storyboard中可以使用静态cell布局,其次当使用了静态cell布局后,一定删掉tableViewController 创建时自带的数据源方法
// : MARK — NO.8 注释快捷键

command + option + / : 以前一个常用注释插件,在Xcode8中进行了整合
// : MARK — NO.9 加载HTML5方法优劣(简单)解析
#1. UIWebView 内存消耗大/内存泄露 iOS 7.0以前使用

#2. WKWebView 开源的,解决了UIWebView的内存问题

#3. SFSafariViewController iOS 9.0以后使用
// : MARK — NO.8
// : MARK — NO.8
// : MARK — NO.8
// : MARK — NO.8

你可能感兴趣的:(Swift3.0 技巧知识点杂集)