NO.1
1.播放器hud 動畫有沒有卡頓 ;
沒遇到——? ? 不過,我使用的CoreAnimation , 盡量不要添加陰影效果
2.uiview 的周期 :? initwithcoder? ? / awakfrom? / loadView / viewdidload / viewwillappear / viewwilllayoutsubviws / viewdidlayoutsubviews / viewdidappear? / viewweilldisppear / viewdiddisappear
3.自動釋放池:
3.程序崩潰情況:
有集成bugly ; 收集奔潰 / 卡頓信息 ;
數(shù)組越界 / 插入了空值 nil 的 /? SEGV_ACCERR : 異常進(jìn)程線程的? /
NO.2
1.kvo 底層:
基于runtime 機(jī)制 ; 底層會動態(tài)創(chuàng)建當(dāng)前類的派生類, 重寫被監(jiān)聽屬性的 setter 方法;
在setter 方法里面, 添加? [ sefl valuewillchangefokey]? [self valuedidchangeforkey]
觸發(fā)? observalueforkeypath: ofobject :? context:
項(xiàng)目使用: 1.畫筆bacK / resume 2.視頻熟悉 3.視頻連線滑動
2.通知 ; 是同步 ; 只有執(zhí)行完當(dāng)前任務(wù), 才會繼續(xù)執(zhí)行
項(xiàng)目使用: websocket
3.rumtime :? oc 是動態(tài)語言, 方法的調(diào)用在底層就是消息發(fā)送;
運(yùn)用場景(例子): 1. 未分類添加屬性? ,? 2.模型解析
項(xiàng)目中的使用:
4.rac 原理:
5.項(xiàng)目亮點(diǎn):
1.畫筆封裝: kvo監(jiān)聽—--狀態(tài)的改變 (返回前進(jìn))
基類封裝 ——? RVBaseBrush? (公用的 屬性:? 起點(diǎn) / 終點(diǎn) 線寬 顏色? bezirPath? 方法 子類實(shí)現(xiàn): (生成傳給后臺的參數(shù)? getDrawArguments )? ; )-> RVFreedomBrush RVTectagleBrush RVCircleBrush RVArrowBrush
RVDrawBoard —? ? ? UIBesierPath 畫線 ; drawRect:? [self setNeedDidplay] 刷幀;
touchBegain
2.視頻尋幀: seek —? seekToTime:time toleranceBefore seekToTime:time toleranceBefore
視頻播放器封裝? :? —? controle? , layer 層 ;? hud ;
status , loadtimerange , 屬性監(jiān)聽 ;? playbackBufferFull? rate
播放器初始化:? AVURLAsset ,? 然后異步加載 loadValuesAsynchronouslyForKeys
@“playable”? — 是否可以播放; 然后做初始化? palyer , playerItem
添加時間監(jiān)聽 (沒有用NSTimer) —? addPeriodicTimeObserverForInterval
NO.3
1.賬號密碼保存方式:? userdefault? , 歸檔 , keyChain? ;
keyChain : 保存在設(shè)備中,獨(dú)立于每個App沙盒之外;
1.安全 2.即使App卸載 ,存儲信息依舊存在,再次安裝App,可以依舊使用
3.相同的 AppleId 開發(fā), 可以實(shí)現(xiàn)多個App共享數(shù)據(jù)
2.視頻退出后, 有能繼續(xù)聽到聲音 1~3s,? 要先pause
3. 不同圖片,同一url; 怎么做更新; 圖片MD5 校對
每次圖片路徑都不一樣,? filter 過濾器
4.內(nèi)存偏高調(diào)試:
1.靜態(tài)分析 2.instrument leaks 測試
平常開發(fā)時候看下內(nèi)存; 一般不會超過100M ; 播放視頻時 80M ; 突然標(biāo)高, 1.檢查代碼有沒有內(nèi)存泄漏
5.多線程:
GCD? / NSOperation / NSThread ;
優(yōu)勢:? GCD 純c的API, 簡單快捷, 直接block 里面寫我們的代碼 ;
用到的地方 : 返回主線程刷新UI
NSOperation :? 基于GCD的封裝,
NO.4
1.微信按鈕實(shí)現(xiàn): 事件處理
錄音是一直在錄的;
事件添加使用的 addTarget :? 通過ControlState 判斷;? UIControlEventTouchDown? ? UIControlEventTouchUpOutside? UIControlEventTouchUpInside? ? UIControlEventTouchDragExit
UIControlEventTouchDragEnter? ;
不用通過判斷手指位置, 來做;
2.treeNode 遍歷
3.swift 知識:
屬性是否為可選類型牙咏,你可以在 weak (值可以為nil)和 unowned 之間進(jìn)行選擇妄壶。
4.藍(lán)牙知識:
App < ——? CoreBluetooth 框架:? <—— 低功耗協(xié)議棧上面
1.外設(shè)peripheral:? 向中心設(shè)備發(fā)送數(shù)據(jù)
2.中心設(shè)備central: 可以從外設(shè)讀取數(shù)據(jù), 也可以向外設(shè)寫入數(shù)據(jù)
關(guān)鍵詞:
廣播:? 外設(shè)不停的散播藍(lán)牙信號, 中心設(shè)備可以掃描到
服務(wù)(services): 外設(shè)廣播和運(yùn)行的時候有服務(wù);? 即—— 一種功能,中心設(shè)備可以讀取服務(wù).
外設(shè)可以有多個服務(wù)
特征(characteristic): 服務(wù)? 的一個單位, 一個服務(wù)可以有多個特征; 特征—— value ; 讀取數(shù)據(jù)就是value 值;
UUID : 區(qū)分不同的服務(wù)services和特征characteristic;
5.wifi 路由
首先: 需要像蘋果申請權(quán)限;
ios9之后,? NetworkExtension :? 可以給系統(tǒng)wifi列表里的wifi 設(shè)置密碼, 標(biāo)簽; 還可以獲取總個wifi 列表
一些相關(guān)屬性:
SSID : WIFI 名稱? ? ? BSSID : 站點(diǎn)的MAC地址
signalStength : wifi 信號強(qiáng)度, 該值在 0 -1NO.1
1.播放器hud 動畫有沒有卡頓 ;
沒遇到——? ? 不過,我使用的CoreAnimation , 盡量不要添加陰影效果
2.uiview 的周期 :? initwithcoder? ? / awakfrom? / loadView / viewdidload / viewwillappear / viewwilllayoutsubviws / viewdidlayoutsubviews / viewdidappear? / viewweilldisppear / viewdiddisappear
3.自動釋放池:
3.程序崩潰情況:
有集成bugly ; 收集奔潰 / 卡頓信息 ;
數(shù)組越界 / 插入了空值 nil 的 /? SEGV_ACCERR : 異常進(jìn)程線程的? /
NO.2
1.kvo 底層:
基于runtime 機(jī)制 ; 底層會動態(tài)創(chuàng)建當(dāng)前類的派生類, 重寫被監(jiān)聽屬性的 setter 方法;
在setter 方法里面, 添加? [ sefl valuewillchangefokey]? [self valuedidchangeforkey]
觸發(fā)? observalueforkeypath: ofobject :? context:
項(xiàng)目使用: 1.畫筆bacK / resume 2.視頻熟悉 3.視頻連線滑動
2.通知 ; 是同步 ; 只有執(zhí)行完當(dāng)前任務(wù), 才會繼續(xù)執(zhí)行
項(xiàng)目使用: websocket
3.rumtime :? oc 是動態(tài)語言, 方法的調(diào)用在底層就是消息發(fā)送;
運(yùn)用場景(例子): 1. 未分類添加屬性? ,? 2.模型解析
項(xiàng)目中的使用:
4.rac 原理:
5.項(xiàng)目亮點(diǎn):
1.畫筆封裝: kvo監(jiān)聽—--狀態(tài)的改變 (返回前進(jìn))
基類封裝 ——? RVBaseBrush? (公用的 屬性:? 起點(diǎn) / 終點(diǎn) 線寬 顏色? bezirPath? 方法 子類實(shí)現(xiàn): (生成傳給后臺的參數(shù)? getDrawArguments )? ; )-> RVFreedomBrush RVTectagleBrush RVCircleBrush RVArrowBrush
RVDrawBoard —? ? ? UIBesierPath 畫線 ; drawRect:? [self setNeedDidplay] 刷幀;
touchBegain
2.視頻尋幀: seek —? seekToTime:time toleranceBefore seekToTime:time toleranceBefore
視頻播放器封裝? :? —? controle? , layer 層 ;? hud ;
status , loadtimerange , 屬性監(jiān)聽 ;? playbackBufferFull? rate
播放器初始化:? AVURLAsset ,? 然后異步加載 loadValuesAsynchronouslyForKeys
@“playable”? — 是否可以播放; 然后做初始化? palyer , playerItem
添加時間監(jiān)聽 (沒有用NSTimer) —? addPeriodicTimeObserverForInterval
NO.3
1.賬號密碼保存方式:? userdefault? , 歸檔 , keyChain? ;
keyChain : 保存在設(shè)備中,獨(dú)立于每個App沙盒之外;
1.安全 2.即使App卸載 ,存儲信息依舊存在,再次安裝App,可以依舊使用
3.相同的 AppleId 開發(fā), 可以實(shí)現(xiàn)多個App共享數(shù)據(jù)
2.視頻退出后, 有能繼續(xù)聽到聲音 1~3s,? 要先pause
3. 不同圖片,同一url; 怎么做更新; 圖片MD5 校對
每次圖片路徑都不一樣,? filter 過濾器
4.內(nèi)存偏高調(diào)試:
1.靜態(tài)分析 2.instrument leaks 測試
平常開發(fā)時候看下內(nèi)存; 一般不會超過100M ; 播放視頻時 80M ; 突然標(biāo)高, 1.檢查代碼有沒有內(nèi)存泄漏
5.多線程:
GCD? / NSOperation / NSThread ;
優(yōu)勢:? GCD 純c的API, 簡單快捷, 直接block 里面寫我們的代碼 ;
用到的地方 : 返回主線程刷新UI
NSOperation :? 基于GCD的封裝,
NO.4
1.微信按鈕實(shí)現(xiàn): 事件處理
錄音是一直在錄的;
事件添加使用的 addTarget :? 通過ControlState 判斷;? UIControlEventTouchDown? ? UIControlEventTouchUpOutside? UIControlEventTouchUpInside? ? UIControlEventTouchDragExit
UIControlEventTouchDragEnter? ;
不用通過判斷手指位置, 來做;
2.treeNode 遍歷
3.swift 知識:
屬性是否為可選類型伊磺,你可以在 weak (值可以為nil)和 unowned 之間進(jìn)行選擇拼卵。
4.藍(lán)牙知識:
App < ——? CoreBluetooth 框架:? <—— 低功耗協(xié)議棧上面
1.外設(shè)peripheral:? 向中心設(shè)備發(fā)送數(shù)據(jù)
2.中心設(shè)備central: 可以從外設(shè)讀取數(shù)據(jù), 也可以向外設(shè)寫入數(shù)據(jù)
關(guān)鍵詞:
廣播:? 外設(shè)不停的散播藍(lán)牙信號, 中心設(shè)備可以掃描到
服務(wù)(services): 外設(shè)廣播和運(yùn)行的時候有服務(wù);? 即—— 一種功能,中心設(shè)備可以讀取服務(wù).
外設(shè)可以有多個服務(wù)
特征(characteristic): 服務(wù)? 的一個單位, 一個服務(wù)可以有多個特征; 特征—— value ; 讀取數(shù)據(jù)就是value 值;
UUID : 區(qū)分不同的服務(wù)services和特征characteristic;
5.wifi 路由
首先: 需要像蘋果申請權(quán)限;
ios9之后,? NetworkExtension :? 可以給系統(tǒng)wifi列表里的wifi 設(shè)置密碼, 標(biāo)簽; 還可以獲取總個wifi 列表
一些相關(guān)屬性:
SSID : WIFI 名稱? ? ? BSSID : 站點(diǎn)的MAC地址
signalStength : wifi 信號強(qiáng)度, 該值在 0 -1