獲取設(shè)備的移動事件 當(dāng)我們移動,晃動,或者傾斜手機的時候,這些動作都會被設(shè)備的硬件捕獲。其實每一個動都都會在 X, Y, Z 三個方向上產(chǎn)生速度...
0x01 春節(jié)閑著沒事(是有多閑),就寫了個簡單的程序,來爬點笑話看,順帶記錄下寫程序的過程。第一次接觸爬蟲是看了這么一個帖子,一個逗逼,爬取煎...
不少小伙伴們升級到 macOS Sierra 10.12.1 后在升級引導(dǎo)界面被坑了一把,就是把桌面和文檔自動同步到 iCloud 中,導(dǎo)致消耗...
在日常開發(fā)過程中,為了提升程序運行效率,以及用戶體驗,我們經(jīng)常使用多線程。在使用多線程的過程中,難免會遇到資源競爭問題。我們采用鎖的機制來確保線...
定義屬性 當(dāng)編譯器碰到屬性聲明的時候,會生成和類,類別,協(xié)議相關(guān)的描述性元數(shù)據(jù),在類和協(xié)議中,你可以通過名字來訪問屬性的源數(shù)據(jù),你可以通過使用 ...
類型編碼 為了協(xié)助 runtime 系統(tǒng),編譯器將吧參數(shù)和返回值編碼為字符串,并把這個字符串和方法選擇器關(guān)聯(lián)起來。在其他上下文中,這種編碼方案同...
Message Forwarding 給一個對象發(fā)消息,如果這個對象不處理的話,那么將會產(chǎn)生一個錯誤。但是在拋出錯誤之前,runtime 系統(tǒng)給...
動態(tài)方法解析 這一章解釋了怎樣動態(tài)的提供一個方法的實現(xiàn)。 動態(tài)方法解析 當(dāng)你想動態(tài)的提供一個方法的實現(xiàn)的時候,用 @dynamic 來定義一個屬...
Messaging 這一章講述消息怎樣被轉(zhuǎn)換為 objc_msgSend 方法的調(diào)用,如何通過名稱引用方法,如何利用 objc_msgSend,...