懒加载:
方式为:
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)")
网友评论