您的当前位置:首页正文

Swift3.0学习总结(三)

来源:花图问答

懒加载:

方式为:

lazy var 变量名:变量类型 = {
      //code

 return

}()

lazy为懒加载所用关键字, 对象只会被初始化一次

例如:

lazy var btn:UIButton =  {

var tempBtn =UIButton(type:UIButtonType.ContactAdd)

tempBtn.frame=CGRectMake(90,100,50,50)

tempBtn.backgroundColor=UIColor.cyanColor()

return tempBtn

}()

注: 懒加载时要判断该对象是变量还是常量要根据外层的判断, 如上面的button外层以var修饰,所以该button就是可变的

单例:

static let instance =SingleInstance()

static func shareSingleInstance() ->SingleInstance{

return instance

}

注:static修饰的方法都为类方法

字典转模型:

init(dict:[String:AnyObject]) {

super.init()

setValuesForKeysWithDictionary(dict)

}

注:

1.字典转模型中, 模型中如果有基本数据类型, 那么这个基本数据类型不可以为可选类型, 否则在KVC赋值中会找不到对应的key值, 如果为可选类型, 应该给初值

2.如果自定义了初始化方法并且没有实现系统默认的初始化方法, 那么外界访问不到该类的默认初始化方法,如果想要访问必须手动实现

do...try...catch:

错误处理模式: 在编程时, 很多人会给error传递一个nil, 或者不对error进行判空, 没有了错误处理, 就可能会造成程序崩溃

do {

try 语句

成功处理语句组

} catch 匹配错误 {

错误处理语句组

}

其中do语句中是我们要执行的操作, try为尝试执行的语句,如果执行成功会执行接下来的语句, 不成功则会执行catch语句, 执行错误处理. 

注:

try有三种分别为: 

try:出现错误则会产生警告

try!:出现错误会产生崩溃

try?:出现错误会返回一个可选类型

元祖:

元祖是多个值组合而成的复合值,元祖中的值可以是任意类型, 而且每一个元素的类型可以是不同的.

如:

let temp = ("a", 1)   //这里代表着a的意思是1

元祖也是可以分解的.

如:

let (code, message) = temp

print("\(code)")

print("\(message)")

元祖在分解时, 可以只分解部分值, 忽略其它值, 忽略的值用下划线 "_"代替

let (code, _) = temp

print("\(code)")

访问元祖还可以使用下标的方式获取, 从0开始

let temp = ("a", 1)

//获取第一个值

print("\(temp.0)")

//获取第二个值

print("\(temp.1)")

访问元祖元素还有一种方式: 给定元祖元素命名, 通过名称获取值(元祖.名称)

let temp = (code:"a", name: 1)

print("\(temp.code)")

print("\(temp.name)")