1. 訪問當前對象的屬性,可以不用self.(建議:都不用,在編譯器提示的時候再用.因為閉包時會用到self)
2.#function 當前方法的方法名
3.標注可以用:? ? //TODO:? ? 和? //FIXME: ?和 ? ?// MARK:?
4. () 表示空執(zhí)行
5. ??是一個簡單的三目,如果有值,使用值;如果沒有值,使用??后面的值代替
6.類型轉(zhuǎn)換: 比如將double類型的y轉(zhuǎn)換成int類型,將y轉(zhuǎn)換成整數(shù) swift中 int(y)
7.color + 回車 會出現(xiàn)顏色選擇列表(類似的還有image+回車)
8. 反序遍歷: for i in (0..<10).reversed(){}
9.遍歷數(shù)組的下標和內(nèi)容:
? ? ?for(n , s)in array.enumerated(){ print("\(n) \(s)") }
10.數(shù)組合并: array1+=array2
11.遍歷字典:
? ? for e in dict {//e 是元祖
? ? ? ? ?print("\(e.key)\(e.value)") }
12.合并字典: ??for e in dict2{ dict1[e.key] =dict2[e.key]?}
13.Swift 3.0 舵匾,默認情況下編譯器就是會去檢查返回參數(shù)是否有被使用期升,沒有的話就會給出警告。如果你不想要這個警告多望,可以自己手動加上@discardableResult偷卧,如:
@discardableResult func doSomething()->Bool{
? return true
}
14 ?deinit屬于析構(gòu)函數(shù)
析構(gòu)函數(shù)(destructor) 與構(gòu)造函數(shù)相反,當對象結(jié)束其生命周期時(例如對象所在的函數(shù)已調(diào)用完畢),系統(tǒng)自動執(zhí)行析構(gòu)函數(shù)
和OC中的dealloc 一樣的,通常在deinit和dealloc中需要執(zhí)行的操作有:
. 對象銷毀
. KVO移除
. 移除通知
. NSTimer銷毀
15 反射機制的概念:
? ? ? ? 對于任意一個類,都能夠知道這個類的所有屬性和方法
? ? ? ? 對于任意一個對象,都能夠調(diào)用它的任意一個方法和屬性
? ? ? ? 這種動態(tài)的獲取信息以及動態(tài)的調(diào)用對象的方法功能稱為 Java 語言的反射機制
在oc中如何利用反射機制
利用 NSClassFromString 方法來使用字符串獲得類
利用 isMemberofClass: 判斷是否是某一個類
利用 isKindofClass判斷是否是某一個類的子類
利用 conformsToSelector判斷對象是否遵守某一個協(xié)議
利用 respondsToSelector 判斷是否實現(xiàn)了某一個方法
利用 performSelector 或者 objc_megSend 間接調(diào)用方法
16.
訪問權(quán)限則依次為: open public ?intermal ?fileprivate ?private ? ?
現(xiàn)在private 是真正的私有,離開了和這個類或者結(jié)構(gòu)體的作用域外面就無法訪問
fileprivate 不不是真正的私有,在同一個文件中的其他類依然是可以訪問的.也就是 文件內(nèi)私有
pubilc一個元素在module范圍外可以被訪問,但是不能被繼承/override
open一個元素在module范圍外可以被訪問,可以被繼承/override
17.
portrait:豎屏,肖像
landspace : 橫屏,風景畫
- 使用代碼控制設(shè)備的方向,好處:可以在需要鎖屏的時候,單獨處理!
- 設(shè)置支持的方向之后,當前的控制器及子控制器都會遵守這個方向!
- 如果播放視頻,通常是通過modal展示的!
override var supportedInterfaceOrientations:UIInterfaceOrientationMask{
? ? ? ? ? ? ?return.portrait
}
18.
19.#selector(類名.方法名)
事件監(jiān)聽的本質(zhì):
? ? 1.將方法包裝成@SEL->類中查找方法列表->根據(jù)@SEL找到imp指針(函數(shù)指針)->執(zhí)行函數(shù)
? ?2.注意: Swift中將一個函數(shù)聲明成fileprivate,那么函數(shù)不會被添加到方法列表中
? ?3.如果在fileprivate前面加上@objc,那么該方法仍然會被添加到方法列表中
20. ?? 的作用
如果 ??前面的可選類型有值,那么將前面的可選類型進行解包并且賦值
如果??前面的可選類型為nil,那么直接使用?? 后面的值.
21.便利(convenience)構(gòu)造函數(shù)
構(gòu)造函數(shù)通常用在對系統(tǒng)的類進行構(gòu)造函數(shù)的擴充時使用
? 便利構(gòu)造函數(shù)的特點:
? ? 1.便利構(gòu)造函數(shù)通常都是寫在extension里面
? ? 2.遍歷構(gòu)造函數(shù)init前面加上convenience
? ? 3.在便利構(gòu)造函數(shù)中需要調(diào)用self.init()
22.處理異常的方式
有三種,這里推薦常用的一種: try?方式(常用方法)系統(tǒng)幫助我們處理異常,如果該方法出現(xiàn)了異常,則該方法返回nil.如果沒有異常,則返回對應的對象
guard let anyobject = try? NSJSONSerialization.JSONObjectWithData(jsonData,options:.MutableContainers)else {
? ? ? ? ?return
}
23.字符串型字面量
24.