本期導(dǎo)讀:本期周報(bào)主要包括平安好房APP在模塊化架構(gòu)推進(jìn)過(guò)程中遇到的一些有意思的技術(shù)問(wèn)題,當(dāng)然也有一點(diǎn)點(diǎn)關(guān)于WWDC 16的資訊(開(kāi)發(fā)者版)。
資訊
1) WWDC 2016 新系統(tǒng)發(fā)布會(huì)5分鐘無(wú)廢話版簡(jiǎn)介
蘋(píng)果還宣布了一個(gè)為 Flash/SSD儲(chǔ)存設(shè)備優(yōu)化的新文件系統(tǒng)Apple File System(APFS),希望對(duì)我那臺(tái)老MBP有所幫助(前不久剛自己動(dòng)手換了SSD)。APFS預(yù)計(jì)將在2017年發(fā)布,暫不會(huì)提供它的開(kāi)源實(shí)現(xiàn)。
技術(shù)人員的目光不要被各類(lèi)媒體的無(wú)腦小編帶偏,至于其他方面的更新,此處不表,冷嘲也好、熱諷也罷。
2) 關(guān)于 WWDC 16 總得說(shuō)點(diǎn)什么
開(kāi)發(fā)者記錄的一些感想,作者曾在QQ音樂(lè)團(tuán)隊(duì)獨(dú)立完成Apple Watch端第一個(gè)版本,目前在阿里巴巴。
開(kāi)發(fā)
1) NSInvocation returns value but crash the app
在平安好房APP推進(jìn)模塊化架構(gòu)過(guò)程中,對(duì)一些曾經(jīng)使用MRC的代碼做了ARC遷移。冷不丁的被NSInvocation調(diào)用給坑了一把。
在ARC模式下,getReturnValue:僅僅是從invocation的返回值拷貝到指定的內(nèi)存地址,如果返回值是一個(gè)NSObject對(duì)象的話,是沒(méi)有處理內(nèi)存管理的。而我們?cè)诙xreturnValue時(shí)使用的是__strong類(lèi)型的id類(lèi)型,ARC就會(huì)假設(shè)該內(nèi)存塊已被retain(實(shí)際沒(méi)有)。當(dāng)returnValue出了定義域,被釋放時(shí),導(dǎo)致crash。
2) performSelector may cause a leak because its selector is unknown
依舊是ARC遷移相關(guān)。在遷移到ARC之后,編譯器給出了一個(gè)可能leak的警告。仔細(xì)研究后,決定采用SuppressPerformSelectorLeakWarning宏解決。
3) Creating and Distributing iOS Frameworks
文章介紹了Framework模板的用法,特別是如何在項(xiàng)目中使用新建的Framework,其中的方案在好房統(tǒng)計(jì)SDK開(kāi)發(fā)、架構(gòu)演進(jìn)過(guò)程中均實(shí)踐過(guò)。
工具
1) CocoaPods中一些問(wèn)題的解決
上一期周報(bào)提到過(guò),目前不少公司模塊化架構(gòu)采用的CocoaPods方案。在使用CocoaPods的過(guò)程中難免遇到各類(lèi)問(wèn)題,翻翻這篇文章的總結(jié),相信你會(huì)有些收獲。
2) Achieving Awesomeness with Local CocoaPods
作者(曾經(jīng)是Twitter for Apple Watch的負(fù)責(zé)人)介紹了使用私有Pods的一些思考,有一段話非常贊同:
While this approach works great if your Pods are stable, I’ve found that this doesn’t work too well if your Pods are still in active development; keeping them in lockstep with your application code can be a huge pain, particularly on larger teams with multiple feature branches.
3) Octopress與El Capitan沖突問(wèn)題解決方案
近一年沒(méi)有寫(xiě)blog,近一年沒(méi)有用Octopress,所以與El Capitan沖突的問(wèn)題也是上周末才知道。
小結(jié)一下:新系統(tǒng)下需要新的依賴(lài)庫(kù),而這些庫(kù)需要ruby2.2.3的版本安裝。
其他
1) 注冊(cè)在開(kāi)曼的公司,其期權(quán)究竟能不能買(mǎi)?
2) 文摘
人生的困擾大抵來(lái)自四個(gè)方面:不可避免的死亡,內(nèi)心深處的孤獨(dú)感,我們追求的自由以及生活并無(wú)顯而易見(jiàn)的意義可言。
@end