懶加載:
方式為:
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)")