Runloop是什么?如何用?在什么場景下會用到?
RunLoop是與線程進行關聯的,可以這樣理解,每一個線程中會創建一個RunLoop(不一定每個線程都有RunLoop),而不是一個task創建一個RunLoop。
系統會在主線程開始運行時,隱式的啟動主線程的RunLoop,而輔助線程不會自動啟動,需要顯式的啟動。
數據列表需要展示大量數據,如何優化?至少三個方面?
第一先利用TableVIew或者CollectionView的重用機制;第二再定制各種樣式的Cell ;重點第三通過CoreText或者TextKit來做富文本的展示,盡量減少UI控件的繪制工作 再深入一點:通過空間換取時間,利用緩存方式進行緩存Cell的高度,從而減少計算的時間
SQLite和CoreData區別?優缺點?FBDataBase使用?coreData結構構成?
SQLite和CoreData沒有本質上的區別,CoreData是對原始SQLite數據庫API訪問進行了一層封裝,通過面向對象的接口進行管理數據緩存,比使用SQL語句操作SQLIte數據庫更加簡單和方便,當然CoreData也有缺點,比如API不夠用,處理大量數據會變得緩慢,SQLite就沒有這樣的問題,只要寫SQL語句的人有經驗,大部分是可以避免的,當然SQLIte也會有一些弊端,比如網絡數據怎樣自動化映射到數據庫中?而CoreData就有類似由Github寫的Mantle開源庫,很好的處理這個問題。CoreData提供一個管理上下文,數據模型,數據持久化存儲助理協調器。
上千條數據需要插入數據表,如何優化提高效率?
使用事務,FMDB中有現成的代碼,beginTransaction。
同時對同一張表進行操作?
使用鎖、串行調度隊列等都可以,參考FMDB中的FMDtabaseQueue。
多線程里面主要由哪幾種?它們的優缺點?
多線程:NSOperation配合NSOperationQueue,GCD,NSThread;GCD的缺點難于管理,不可取消和暫定,NSTr難于定位問題,NSOperation可用性高,可支持調度、暫停,取消等功能,一般都會才去繼承NSOperation來做更深入的定制線程
實現類似網易新聞的滑動標簽選項
網易新聞的滾動標簽和容器都是一個聯動的ScrollView,通過統一管理數據源,利用KVO做兩個ScrollView的聯動工作(項目https://github.com/JackTeam/XHNewsFrameworkExample)(wiki:https://github.com/JackTeam/XHNewsFrameworkExample/wiki/XHNewsFramework%E6%A1%86%E6%9E%B6%E6%96%87%E6%A1%A3)