① 閑著編譯了最新libclosure-74
Block 底層源碼想必大家已經(jīng)非常熟悉了,但是估計(jì)有很多人不知道怎么去看,更有甚者不知道在哪!
這里首先感謝蘋果開源了 : libclosure-74 盡管已經(jīng)開源,但是對于像我這樣的懶人來說,這個還是有點(diǎn)不方便理解!
所以今天休閑之余索性就把 libclosure-74
給編譯了,方便大家學(xué)習(xí)
下載通道: libclosure-74-KCBuild
??我們看看效果吧
② clone的源碼注意事項(xiàng)
??大家Github 下載下來注意一下:
- 1: 工程如果存在文件找不到就看看
Build settting
的Header Search Paths
是否是相對路徑 - 2: 下載的工程描述文件可能不能匹配,大家調(diào)整一下
- 3: 如果新建target,需要添加依賴 :Blocks
- 4: 編譯成功不進(jìn)源碼:
Build settting
->Enable Hardened Runtime
-> No
其他應(yīng)該沒有什么問題 (如果有的話提 issure 我看到會第一時間回復(fù)你 ),大家愉快的去玩轉(zhuǎn)Block吧!
③ Block面試題
最后留幾個關(guān)于 Block 的面試題,可以把你的答案和理解寫到評論區(qū)
1: Block
的簽名是什么?
2: 編譯器默認(rèn)的 stackBlock
是怎么變成 mallocBlock
的?
3: Block
捕獲的外界變量經(jīng)過 __block
修飾之后為什么可以修改
4: Block
為什么用 copy
修飾 而不是 strong
或者 weak
5: Block
捕獲的變量是怎么銷毀的?
PS: 如果覺得還可以, 花一秒鐘留個??再走吧 謝咯!!!