1.封裝的乙個不用寫sqlite語句的資料庫類,使用的是swift4.0,運用了runtime機制獲取屬性名,和屬性值,通過模型直接呼叫方法就可以進行資料庫操作,先看看效果圖
2.先對封裝的類進行簡單的介紹
2-1. 對qypsqlitemanager內**
import foundation
import fmdb
class
qypsqlitemanager
}
2-2. qypobject+extension
import foundation
extension nsobject
sql += ");"
// 2. 執行 sql - fmdb 的內部佇列,序列佇列,同步執行
// 可以保證同一時間,只有乙個任務運算元據庫,從而保證資料庫的讀寫安全!
qypsqlitemanager.shared.queue.indatabase else }}
/// 查詢資料表是否存在
func tableviewi***ists() -> bool
while rs.next()
}if tempcount == 0
return
true}}
2-3 *這裡是我們需要使用的介面qypdbapi類
import foundation
extension nsobject
key.remove(at:key.index(before: key.endindex))
values.remove(at:values.index(before: values.endindex))
insertsql += key + ")" + values + ");"
let valuesarr = self.getvalueofproperty()
qypsqlitemanager.shared.queue.intransaction else}}
/// 刪除資料
/// /// - parameter deletstr: "name = 'jacob'"
func delete(deletstr:string)else }}
/// 跟新語句全部模型裡面的資料全部跟新
func updatedata(wherestr:string)
updatesql.remove(at:updatesql.index(before: updatesql.endindex))
updatesql += " where \(wherestr);"
print(updatesql)
qypsqlitemanager.shared.queue.indatabase else }}
/// 表中資料全部查出預設按公升序排列
// fixme:先放在這裡,還未處理的是 order by id desc 別的東西,現在只做到了id的降序排列
func selectdata(wherestr:string,order_by:string = "id asc") -> [[string:anyobject]]
selectsql.remove(at:selectsql.index(before: selectsql.endindex))
selectsql += " from \(self.classforcoder) where \(wherestr) order by \(order_by);"
print(selectsql)
var result = [[string: anyobject]]()
qypsqlitemanager.shared.queue.indatabase
while rs.next()
// 在這裡通過執行時給類新增屬性,並且設定屬性值
dic[name] = value
as anyobject}}
}return result}}
2-4…這裡是runtime獲取屬性值,和屬性名
import foundation
extension nsobject
return
true
}/// 獲取屬性值
/// /// - returns: 返回獲取到的屬性值陣列
func getvalueofproperty()->[string]
return values
}///[使用執行時]獲取當前類所有的屬性陣列
func propertylist() -> [string]
var arr = [string]()
for i in
0..//根據下標 獲取屬性
let a = list[i]
//獲取屬性的名稱
let cname = property_getname(a)
let n = string(utf8string:cname)
}// 在這個方法裡面建立資料表.
if tableviewi***ists() == false
return arr}}
4.*同時專案運用了mvvm的使用,基本上和實際專案模式一直,可以值得借鑑
5.介紹結束.完整的**已經提交github位址
要是可以幫到大夥,求點贊,要是**寫的不足,求指教
Swift4 0 基礎部分
翻譯能力有限,如有不對的地方,還請見諒!希望對swift的學習者有所幫助 swift是一門新的程式語言,用於ios,macos,watchos以及tvos系統平台上應用程式的開發。儘管如此,如果有c和objective c開發經驗的話,那麼對於swift的許多部分,你將並不陌生。c和objectiv...
Swift 4 0 巨集定義
swift中並沒有加入巨集系統,c語言使用 define定義的基本常量在匯入swift時被swift編譯自動轉為swfit語言的全域性變數。但複雜的巨集定義不能被swift轉換。swift中類似巨集定義,可以單獨建立乙個類,如const.swift,在此類中宣告一些常量。例如 螢幕的寬 let sc...
Swift 4 0 陣列 Array 學習
定義陣列常量 常量只有讀操作 let array1 int 11,55,5 let array2 11,55,5 定義陣列變數var array int 這是我最喜歡的 var array0 int 10,20,30 初始化並賦值 var array1 int array var array2 ar...