以下是自己學(xué)習(xí)Swift 的一些記錄溢十,便于以后查找翻閱
一些關(guān)鍵字
-
@escaping
(es=ex向外,cape=海角)修飾閉包的關(guān)鍵字澈蝙,這個(gè)關(guān)鍵字理解為逃跑,意思是這個(gè)閉包可以超出這個(gè)函數(shù)體的作用范圍楣富。 -
@convention
字面意思是約定,在swift中調(diào)用Objectvie-C或者C的時(shí)候瞧栗,要用這個(gè)關(guān)鍵字斯稳,才能把swift中的函數(shù)變量傳入Objectvie-C或者C中。 - ?變量后面跟這個(gè)可以認(rèn)為是可選值迹恐,這種情況實(shí)際使用的時(shí)候挣惰,要用一個(gè)常量去接受這個(gè)值,然后判斷是否為空。
- !確認(rèn)這個(gè)值是有的殴边,程序員自己斷定憎茂,但是實(shí)際有可能是沒(méi)有的。
- :后面跟著類型锤岸,->跟返回類型竖幔。
- 泛型Type<T> T相當(dāng)于占位符,傳入?yún)?shù)不會(huì)出現(xiàn)問(wèn)題是偷。
- as轉(zhuǎn)換拳氢,as!強(qiáng)制轉(zhuǎn)換,as?轉(zhuǎn)換不成功返回nil
- (屬性訪問(wèn)控制)private是類私有或則結(jié)構(gòu)體私有(當(dāng)前作用域),fileprivate是文件內(nèi)私有蛋铆,internal是target內(nèi)訪問(wèn)馋评,public表示公開(kāi),target可以繼承(重寫)刺啦,但是在模塊外只可以訪問(wèn)留特,open表示開(kāi)放,在target外可以訪問(wèn)洪燥,也可以繼承(重寫)磕秤。
- final 保持原樣
- typealias 別名。
- guard( 守衛(wèi))保證是你想要的條件捧韵,不想要的就返回市咆。
guard let request = request else {
return
} - willset,didset用來(lái)監(jiān)控oldValue,newValue,實(shí)現(xiàn)屬性檢測(cè)再来。
- extension類擴(kuò)展蒙兰,可以擴(kuò)展屬性和方法
- @available(iOS 9.0, macOS 10.11, tvOS 9.0, *)
- 有沒(méi)有變異方法決定數(shù)組的可變課不可變
- 寫時(shí)復(fù)制磷瘤,對(duì)于真正用到,才分配內(nèi)存
var diameter: Double {
get { return radius * 2}
set { radius = newValue / 2}
}
radius // 10
diameter // 20
diameter = 1000
radius // 500
var colorToUse = userChosenColor ?? defaultColor
var radius: Double = 10 {
willSet { print("將要賦值中") }
didSet { diameter =radius * 2}
}
}
radius = 10 // 將要賦值中
diameter // 20.0 ```
- 便利初始化
class Human { var finger: Int var toe: Int init(finger: Int, toe: Int) { self.finger = finger self.toe = toe } convenience init() { self.init(finger: 10, toe: 10) // 調(diào)用主初始化方法 } } var daDi = Human() daDi.finger // 10 daDi.toe // 10