* 閉包
? ? * 閉包作為屬性
? ? ```swift
? ? // 聲明閉包類型
? ? typealias callback = (_ actionType : String, _ message : String) -> Void
? ? // 作為屬性
? ? public var nativeCallback : callback!
? ? // 全局調(diào)用
? ? self.nativeCallback("aaa", "test")
? ? // 事件回調(diào)
? ? self.webManager.nativeCallback = {(actionType, message) in
? ? ? ? print(actionType,message)
? ? }
? ? ```
? ? * 閉包作為參數(shù)
? ? ? ? * @nonescaping(非逃離閉包,閉包在方法執(zhí)行完成會從被程序移除)
? ? ? ? ```swift
? ? func getParams(_ id: String, handler: (Any) -> Void) {
? ? }
? ? ? ? ```
? ? ? ? * @escaping(逃離閉包,閉包被保留以便稍后執(zhí)行并且函數(shù)的主體被執(zhí)行,返回編譯器拉岁。當(dāng)執(zhí)行結(jié)束時莲蜘,傳遞的閉包的范圍存在并且在內(nèi)存中存在阳欲,直到閉包被執(zhí)行)
? ? ? ? ? ? ```swift
? ? ? ? ? ? func getParams(_ id: String, handler: @escaping (Any) -> Void) {
? ? ? ? ? ? }
? ? ? ? ? ? ```
? ? ? ? * @autoclosure(自動閉包眼姐,當(dāng)一個閉包沒有參數(shù)的時候诫惭,就可以使用自動閉包了檩奠,更偏向描述一個表達(dá)式)
? ? ? ? ? ? ```
? ? ? ? ? ? func getParams(handler: () -> Void) {
? ? ? ? ? ? ? ? print("abc")
? ? ? ? ? ? }
? ? ? ? ? ? getParams(handle: print("abc"))
? ? ? ? ? ? ```
* mutaing
? ? * 用來修飾枚舉和結(jié)構(gòu)體中的方法桩了,使其結(jié)構(gòu)體或枚舉中的方法可以修改結(jié)構(gòu)體或者枚舉中的變量
* lazy
? ? * 聲明屬性時,屬性必須是var
* 類方法
? ? * static 關(guān)鍵字聲明
? ? * class 用來覆蓋父類的方法
* 下標(biāo)
? ? ```
? ? subscript(index: Int) -> Int {
? ? get {
? ? ? ? // return an appropriate subscript value here
? ? }
? ? set(newValue) {
? ? ? ? // perform a suitable setting action here
? ? }
}
? ? ```
* convenience
? ? * https://swifter.tips/init-keywords/
* enum
? ? * swift調(diào)用oc的enum
? ? ```
? ? ? oc的enum? typedef NS_ENUM(NSUInteger, WYADrawerTransitionDirection) {
? ? ? ? WYADrawerTransitionFromLeft = 0, // 左側(cè)滑出
? ? ? ? WYADrawerTransitionFromRight? ? // 右側(cè)滑出
? ? };
? ? ```
? ? ```
? ? 1.使用
? ? example:
? ? if direction.rawValue == 0 {
? ? }else {
? ? }
? ? ```? ?
? ? * oc調(diào)用swift的enum
? ? ```
? ? swift的enum? @objc public enum jumpType: Int {
? ? ? ? ? ? case push = 0
? ? ? ? ? ? case present = 1
? ? ? ? }
? ? ```
* notication
? ? * 自定義通知名稱
? ? ```
? ? extension Notification.Name {
? ? ? ? static let closeWin = NSNotification.Name("closeWin")
? ? }
? ? ```