swift學(xué)習(xí)筆記 2019-04-03

1碰逸、@escaping(逃逸閉包)

如果一個(gè)閉包被作為一個(gè)參數(shù)傳遞給一個(gè)函數(shù)鸟废,并且在函數(shù)return之后才被喚起執(zhí)行拾碌,那么這個(gè)閉包是逃逸閉包雁乡。并且這個(gè)閉包的參數(shù)是可以“逃出”這個(gè)函數(shù)體外的第喳。
在swift3.0之后閉包默認(rèn)是不可逃逸的,逃逸閉包需要使用@escaping屬性標(biāo)記踱稍。默認(rèn)不可逃逸閉包 最明顯的好處就是:編譯器優(yōu)化你的代碼的性能和能力曲饱。如果編譯器知道這個(gè)閉包是不可逃逸的悠抹,它可以關(guān)注內(nèi)存管理的關(guān)鍵細(xì)節(jié)。而且你可以在不可逃逸閉包里放心的使用self關(guān)鍵字渔工,因?yàn)檫@個(gè)閉包總是在函數(shù)return之前執(zhí)行锌钮,你不需要去使用一個(gè)弱引用去引用self
就是在使用該閉包之前如果該函數(shù)已經(jīng)結(jié)束調(diào)用 就需要在函數(shù)參數(shù)中添加@escaping

2、block

typealiasFKBlock1 = () -> ()
typealiasFKBlock2 = (_:Any) -> ()

3引矩、as梁丘、as!、as?

as:有保證的轉(zhuǎn)換旺韭,從派生類轉(zhuǎn)換為基類的向上轉(zhuǎn)型(upcasts)
使用場(chǎng)合:
從派生類轉(zhuǎn)換為基類氛谜,向上轉(zhuǎn)型(upcasts)

class Animal {}
class Cat: Animal {}
let cat = Cat()
let animal = cat as Animal

消除二義性,數(shù)值類型轉(zhuǎn)換

let num1 = 42 as CGFloat
let num2 = 42 as Int
let num3 = 42.5 as Int
let num4 = (42/2) as Double

switch 語(yǔ)句中進(jìn)行模式匹配
如果不知道一個(gè)對(duì)象是什么類型区端,你可以通過switch語(yǔ)法檢測(cè)它的類型值漫,并且嘗試在不同的情況下使用對(duì)應(yīng)的類型進(jìn)行相應(yīng)的處理。

switch animal {
? ? case let cat as Cat:
? ? print("如果是Cat類型對(duì)象织盼,則做相應(yīng)處理")
? ? case let dog as Dog:
? ? print("如果是Dog類型對(duì)象杨何,則做相應(yīng)處理")
? ? default: break
}

as!:向下轉(zhuǎn)型(Downcasting)時(shí)使用。由于是強(qiáng)制類型轉(zhuǎn)換沥邻,如果轉(zhuǎn)換失敗會(huì)報(bào) runtime 運(yùn)行錯(cuò)誤危虱。
as? 和 as! 操作符的轉(zhuǎn)換規(guī)則完全一樣。但 as? 如果轉(zhuǎn)換不成功的時(shí)候便會(huì)返回一個(gè) nil 對(duì)象唐全。成功的話返回可選類型值埃跷。

4、willset didset

? ? varname:String?{
? ? ? ??willSet{
? ? ? ? ? ? NSLog("==========")
? ? ? ? }
? ? ? ??didSet{
? ? ? ? ? ? NSLog("did set "+name!)
? ? ? ? }
? ? }

5邮利、lazy 延時(shí)加載? ?懶加載屬性

延時(shí)加載或者說(shuō)延時(shí)初始化是很常用的優(yōu)化方法弥雹,在構(gòu)建和生成新的對(duì)象的時(shí)候,內(nèi)存分配會(huì)在運(yùn)行時(shí)耗費(fèi)不少時(shí)間延届,如果有一些對(duì)象的屬性和內(nèi)容非常復(fù)雜的話剪勿,這個(gè)時(shí)間更是不可忽略。另外祷愉,有些情況下我們并不會(huì)立即用到一個(gè)對(duì)象的所有屬性窗宦,而默認(rèn)情況下初始化時(shí),那些在特定環(huán)境下不被使用的存儲(chǔ)屬性二鳄,也一樣要被初始化和賦值赴涵,也是一種浪費(fèi)。
我們?cè)谑褂?lazy 作為屬性修飾符時(shí)订讼,只能聲明屬性是變量髓窜。另外我們需要顯式地指定屬性類型,并使用一個(gè)可以對(duì)這個(gè)屬性進(jìn)行賦值的語(yǔ)句來(lái)在首次訪問屬性時(shí)運(yùn)行。如果我們多次訪問這個(gè)實(shí)例的str 屬性的話寄纵,可以看到只有一次輸出鳖敷。在首次訪問的時(shí)候才會(huì)調(diào)用

? ? lazy?var?titleLabel:UILabel = {
? ? ? ??let?label =UILabel();
//? ? ? 只在首次訪問輸出
? ? ? ??returnlabel;
? ? }()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市程拭,隨后出現(xiàn)的幾起案子定踱,更是在濱河造成了極大的恐慌,老刑警劉巖恃鞋,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件崖媚,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡恤浪,警方通過查閱死者的電腦和手機(jī)畅哑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)水由,“玉大人荠呐,你說(shuō)我怎么就攤上這事∩翱停” “怎么了泥张?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)鞠值。 經(jīng)常有香客問我圾结,道長(zhǎng),這世上最難降的妖魔是什么齿诉? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮晌姚,結(jié)果婚禮上粤剧,老公的妹妹穿的比我還像新娘。我一直安慰自己挥唠,他們只是感情好抵恋,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宝磨,像睡著了一般弧关。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上唤锉,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天世囊,我揣著相機(jī)與錄音,去河邊找鬼窿祥。 笑死株憾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嗤瞎,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼墙歪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了贝奇?” 一聲冷哼從身側(cè)響起虹菲,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掉瞳,沒想到半個(gè)月后毕源,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡菠赚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年脑豹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衡查。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瘩欺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拌牲,到底是詐尸還是另有隱情俱饿,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布塌忽,位于F島的核電站拍埠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏土居。R本人自食惡果不足惜枣购,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望擦耀。 院中可真熱鬧棉圈,春花似錦、人聲如沸眷蜓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)吁系。三九已至德召,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間汽纤,已是汗流浹背上岗。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留冒版,地道東北人液茎。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親捆等。 傳聞我的和親對(duì)象是個(gè)殘疾皇子滞造,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344