前言
最近在GitHub上看了一份關于基于runtime封裝的對象存儲型數(shù)據(jù)庫的開源代碼,覺得非常值得分享記錄一下,在IOS中對數(shù)據(jù)庫的操作一般通過CoreData和SQLite,CoreData 雖然能夠?qū)C對象轉化成數(shù)據(jù),保存在SQLite數(shù)據(jù)庫文件中,也能夠?qū)⒈4嬖跀?shù)據(jù)庫中的數(shù)據(jù)還原成OC對象,期間不需要編寫SQL語句,但使用起來并不是那么方便,而SQLite則需要用戶編寫相應的數(shù)據(jù)庫語句,看起來不是很美觀,所以大家一般都會將其進行封裝,讓其使用起來更加方便,而LHDB就是建立在SQLite之上的封裝。現(xiàn)在,我們來看其是如何實現(xiàn)的,不過在此之前,我先假設大家對OC的runtime機制和sqlite有一定的理解。附上源碼下載地址:github鏈接
實現(xiàn)
所謂的基于對象存儲的數(shù)據(jù)庫,顧名思義,就是一切對數(shù)據(jù)的操作都是對對象模型的操作,通過給對象模型屬性賦值,然后將對象交由底層去解析,轉化成相應的SQL語句,然后執(zhí)行數(shù)據(jù)庫操作,我們先看看整體的一個LHDB目錄結構(這里僅寫出頭文件):
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26