原创 NSInvocation實現類方法調用

  最近寫一個類庫時,需要動態的調用類方法,使用NSInvocation時發現 - (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector OBJC_SWIFT

原创 與、或、異或運算

轉載地址:https://www.cnblogs.com/wisdom-jie/p/7732940.html 1.與運算(&) 參加運算的兩個數據,按二進制位進行“與”運算。 運算規則:0&0=0; 0&1=0; 1&0

原创 iOS開發之首頁彈框管理

  做app開發的時候,尤其是對於強運行的產品,在app首頁可能會有各種各樣的彈框,而且這些彈框種類不同,彈出順序不同,優先級不同。如果單單是根據if else來判斷估計要累死。根據自己的業務需求,我這邊做了一個彈框管理類。主要實

原创 唱吧開源庫KTVHTTPCache學習(二)

  在學習唱吧開源庫的時候,發現關於日誌打印的宏定義寫的特別的好,可以決定每個類是否打印日誌,以及是否保存到log文件中。具體如下: /** * Log Enable Config */ #define KTVHCLogEn

原创 唱吧開源庫KTVHTTPCache學習(一)

  最近用了唱吧的開源庫KTVHTTPCache,覺得非常的棒,對作者也是十分的崇拜,決定對這個開源庫好好的學習下。今天重點說一下NSError生成的問題,我們在寫開源庫的時候,常常需要拋出一些錯誤,自己本人也寫了好多個開源庫了,

原创 視頻播放的心得體會(一)

  最近在做短視頻播放的應用,爲了實現比較好的交互體驗,這邊用到了緩存,預緩存處理。我這邊用到的播放器是SJBaseVideoPlayer 這個庫。首先要向這個開源庫的作者表示感謝,感謝他貢獻自己勞動成果。   在實際應用中,我主

原创 推薦一個動畫框架Lottie

  Lottie 是個非常出名的動畫框架,官網:https://airbnb.design/lottie/ UI設計者,做好動畫效果後,導出json文件,以及相關的資源文件。用這個框架已經很久了, 之所以現在推薦主要是之前覺得框架

原创 JKRouter增加黑白名單制度啦

  最近對JKRouter進行了升級,主要問題是解決路由跳轉的內部web容器,外部web容器的選擇,以及惡意路由的禁止,具體代碼如下: JKRouterExtension.h /** 驗證是否是白名單的url notice:方法

原创 malloc()和calloc()有啥區別

轉載地址:https://zhidao.baidu.com/question/40468782.html malloc()和calloc()的區別: malloc()和calloc()的功能都是在內存的動態存儲區中分配n個長度爲s

原创 iOS KVO詳解

轉載地址:https://www.jianshu.com/p/b9f020a8b4c9 實現KVO KVO是基於KVC實現的,下面講一下KVO的概念和實現。 KVO KVO定義 KVO 即 Key-Value Observing,翻譯

原创 iOS KVC詳解

轉載地址:https://www.jianshu.com/p/b9f020a8b4c9 KVC KVC定義 KVC(Key-value coding)鍵值編碼,就是指iOS的開發中,可以允許開發者通過Key名直接訪問對象的屬性,或者給

原创 iOS視頻字幕SRT解析工具 JKCaptionsHelper

  最近做視頻類App,需要給視頻添加字幕,做到同步播放,我這邊針對這個需求用swift將SRT解析封裝成了一個類庫:JKCaptionsHelper,對OC和Swift都支持,注:對OC提供部分支持,但可以滿足使用。 下載地址:ht

原创 iOS NSRunLoop實現原理及應用

什麼是runloop?   RunLoop 是什麼?RunLoop 還是比較顧名思義的一個東西,說白了就是一種循環,只不過它這種循環比較高級。一般的 while 循環會導致 CPU 進入忙等待狀態,而 RunLoop 則是一種“閒”等

原创 iOS AutoreleasePool 實現原理

  最近在梳理基礎知識,前兩天根據自己的理解,以及參考同行大家的文章,整理了一下autorelease 的實現原理,自己的東西沒有,大家別見笑,具體內容如下: 什麼是AutoreleasePool   AutoreleasePool(

原创 iOS ARC與MRC的區別(一)

爲什麼要進行內存管理?   iPhone手機的內存是有限的,目前最大內存是2G,當運行頻繁多的app的時候,會佔用大量的內存,當我們的app佔用的內存大於40M的時候,ios系統會發出警告,當超過45M的時候系統會發出第二次警告,當佔