原创 Swift 優雅的協議擴展

Swift 優雅的協議擴展仿view.snp.xxx的調用形式如何實現核心完整代碼如下Swift 5.0協議擴展 Cocoapods下載 仿view.snp.xxx的調用形式 先看調用效果:“123456”.yy_Str.MD5F

原创 iOS 可自定義AlertView

YYAlertController 語言:Swift 5.0 原理介紹:利用UIViewController的轉場動畫,通過自定義轉場達到和系統彈出警告框一樣的效果 視圖分爲三類: 標題和小標題 按鈕 添加TextField

原创 iOS SDK開發步驟

打開xcode ->選擇Framework&Library中的Cocoa Touch Static Library如下圖: 點擊Next:取工程名:YDemoSDK(根據自己需求)完成後有這幾個文件 刪除沒有必要的

原创 Swift之使用自定義IconFont

IconFont IconFont 也叫字體圖標,顧名思義,就是字體做的圖標。受到近些年扁平化設計 的影響,越來越多的圖標都開始使用 icon font。 IconFont技術起源於Web領域的Web Font技術。隨着時間的推移

原创 iOS 13適配彙總

隨着iPhone 11的發佈,iOS 13適配也提上了日程,接下來就開發中升級iOS13的手機可能出現的問題 Xcode: 11.0 iOS : 13.0 UIViewController 模態彈出界面 viewControlle

原创 iOS NSTimer 循環引用

NSTimer 我們常常用NSTimer做一些定時任務,代碼如下: #import "YTimerVC.h" @interface YTimerVC () @property (nonatomic, strong) NSTime

原创 Swift之高階函數map、flatMap、filter、reduce

Swift之高階函數map、flatMap、filter、reducemapflatMap與map不同之處filerreduce有關Swift.map高階函數的應用   Swift相比於Objective-C又一個重要的優點,它對

原创 iOS底層原理之KVO本質

面試中常會問道: iOS用什麼方式實現對一個對象的KVO?(KVO的本質是什麼?) 如何手動觸發KVO 什麼是KVO 首先需要了解KVO基本使用,KVO的全稱 Key-Value Observing,俗稱“鍵值觀察”,我們可以

原创 AirPods Pro好在哪

2019年10月29日0點,蘋果正式上架了自己的全新真無線耳機AirPods Pro,相比之前的兩代產品,新的AirPods Pro發生了巨大的變化。但從外觀上發生了很大變化,之前的傳言果然都是真的,吹風機式的設計,更貴的價格。看

原创 面試算法之:如何判斷鏈表是否有環

如何判斷鏈表是否有環方法一:雙重循序遍歷代碼如下方法二:把之前的遍歷的結果實現存儲起來方法三:如果環形跑道,速度不同時,兩個人一定會相遇。代碼拓展之:如何求出入環點?和 環的長度? 方法一:雙重循序遍歷 從頭節點開始,一次遍歷單鏈

原创 Swift Extention

YYExtentions 鏈接地址:https://github.com/YaoChengZhen/YYExtentions.git Installation YYExtentions is available through C

原创 iOS Hook之runtime

一、Hook概述 Hook(鉤子) 其實就是改變程序執行流程的一種技術的統稱! Hook 技術又叫做鉤子函數,在系統沒有調用該函數之前,鉤子程序就先捕獲該消息,鉤子函數先得到控制權,這時鉤子函數既可以加工處理(改變)該函數的執行行

原创 iOS Runtime幾種常見的應用場景

iOS Runtime幾種常見的應用場景OC的動態性場景一:防止button重複事件點擊場景二:訪問NSArray越界問題場景三:快速接手新工程ViewController中添加Hook動態的添加方法發送消息 OC的動態性 OC

原创 面試算法之求最大公約數

題目:求兩個數的最大公約數,要儘量優化算法的性能 方法一:暴力枚舉是絕對不可取的,效率不高如果我們傳入的整數是10000和10001,那我們需要循環10000 / 2 - 1 = 4999 for(int i = small

原创 iOS Cocoapods創建自己的Cocoapods公共庫組件

iOS Cocoapods創建自己的Cocoapods公共庫組件註冊CocoaPods賬戶信息創建pod庫如下步驟 註冊CocoaPods賬戶信息 打開終端,創建一個開源pod庫,需要註冊CocoaPods pod trunk r