前幾天專案中正好用到了.就給大家帶來一個面試題.以及遇到技術問題從哪些角度去回答.嗯.一邊講解,一邊寫了些小筆記.希望能給最近面試的朋友一些幫助.
1.從框架的角度
NSDate 屬於Foundation CFAbsoluteTimeGetCurrent 屬於 Core Foundation CACurrentMediaTime 屬於 QuartzCore
2.本質區別
NSDate 或 CFAbsoluteTimeGetCurrent 返回的系統時鐘時間將會從網路時鐘同步. 從時鐘偏移量的角度 mach_absolute_time() 和 CACurrentMediaTime 基於內建時鐘.能夠更精確的測試時間,並且不會根據外部的時間變化而變化.(例如,時區變化\夏時制),它和系統的upTime有關.系統重啟後,CACurrentMediaTime 也會重新設定.
3.常用用法
NSDate \CFAbsoluteTimeGetCurrent 常用於日常時間,時間戳表示,與伺服器之間的資料互動. CFAbsoluteTimeGetCurrent 相當於 [NSDate date]timeIntervalSinceReferenceDate]; CACurrentMediaTime 常用測試程式碼效率
4.專案使用場景
分析: 在購物車點選"+"和"-"時.如果說立即進行伺服器同步的話,代價是非常高!所以會採用"延時提交"的方法. 思路: 連續點選的時候,不提交伺服器.點選停止時,進行同步.
連續點選如何判斷了???? 採用的是判斷2次點選的時間差,如果時間差小於一定的數值(自己根據專案需求判定).那麼即可判斷是連續點選的操作.