新聞中心
隨著移動應用的日益普及,管理和保存數(shù)據(jù)成為了移動應用必不可少的組成部分。而使用數(shù)據(jù)庫則是一種最為基本的數(shù)據(jù)管理方式。

在 iOS 系統(tǒng)下,開發(fā)者可以選擇使用 Core Data 框架進行數(shù)據(jù)持久化,也可以使用 SQLite 數(shù)據(jù)庫進行數(shù)據(jù)管理。相較于 Core Data 框架,使用 SQLite 進行數(shù)據(jù)管理可以更加靈活和自由,同時也可以通過 SQL 語句實現(xiàn)更為復雜的數(shù)據(jù)查詢和操作。
然而,對于許多剛剛接觸 iOS 開發(fā)的初學者來說,在真機上創(chuàng)建 SQLite 數(shù)據(jù)庫并不是一件簡單的事情。他們需要學習如何使用 Xcode 中的工具或者第三方庫來完成數(shù)據(jù)庫的創(chuàng)建與管理,這不僅需要花費相當長的時間,同時也往往容易出錯。
針對這個問題,本文將介紹如何使用 Swift 在真機上一鍵創(chuàng)建 SQLite 數(shù)據(jù)庫,從而方便初學者和快速開發(fā)者快速實現(xiàn)數(shù)據(jù)管理。
1. 安裝 FMDB
在 Swift 中,我們可以使用 FMDB(https://github.com/ccgus/fmdb)庫來簡化 SQLite 數(shù)據(jù)庫的創(chuàng)建和管理。FMDB 是一個輕量級的 Objective-C 封裝庫,可以方便地在 Swift 項目中使用。
你可以使用 CocoaPods 來安裝 FMDB:
“`
pod ‘FMDB’
“`
2. 導入頭文件,初始化數(shù)據(jù)庫
在你想要使用 SQLite 數(shù)據(jù)庫的類中,你需要導入 FMDB 的頭文件并進行初始化。
導入 FMDB 頭文件:
“`swift
import FMDB
“`
在類中定義一個 FMDatabase 對象:
“`swift
let database: FMDatabase!
“`
在類的初始化方法中,進行數(shù)據(jù)庫的初始化:
“`swift
override init() {
if let docsDir = NSSearchPathForDirectoriesInDomns(.documentDirectory, .userDomnMask, true).first {
let databasePath = docsDir + “/database.sqlite”
database = FMDatabase(path: databasePath)
}
super.init()
}
“`
在這個例子中,我們將 SQLite 數(shù)據(jù)庫文件保存在程序的文檔文件夾中。你也可以選擇將它保存在任何其他位置。需要注意,不能把 SQLite 數(shù)據(jù)庫保存在應用程序包中,因為應用程序包是只讀的。
3. 創(chuàng)建數(shù)據(jù)庫
在數(shù)據(jù)庫初始化后,我們需要創(chuàng)建一個表來保存數(shù)據(jù)。
我們需要定義一個 SQL 語句:
“`swift
let query = “CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)”
“`
在這個例子中,我們定義了一個 users 的表,它有三個列分別是 id、name 和 age。id 列是主鍵,INTEGER 數(shù)據(jù)類型,因此可以自增。name 和 age 列分別是 TEXT 和 INTEGER 數(shù)據(jù)類型。
然后,我們可以執(zhí)行 SQL 語句:
“`swift
if !database.executeStatements(query) {
print(“Fled to create table”)
}
“`
如果查詢執(zhí)行成功,那么 users 表將會被創(chuàng)建。如果查詢執(zhí)行失敗,則會輸出日志信息。
4. 插入數(shù)據(jù)
完成了表的創(chuàng)建之后,我們還需要向表中插入數(shù)據(jù)。
我們需要定義 SQL 語句:
“`swift
let query = “INSERT INTO users (name, age) VALUES (?, ?)”
“`
在這個例子中,我們定義了一個插入語句,它將會向 users 表中插入一條記錄。插入的數(shù)據(jù)在語句中使用 ? 占位符表示。
然后,我們可以將數(shù)據(jù)插入到 users 表中:
“`swift
let name = “張三”
let age = 20
if !database.executeUpdate(query, withArgumentsIn: [name, age]) {
print(“Fled to insert data”)
}
“`
在這個例子中,我們將數(shù)據(jù)張三和 20 分別賦值給 name 和 age。調(diào)用 FMDatabase 的 executeUpdate 方法,執(zhí)行 SQL 語句并將數(shù)據(jù)作為參數(shù)傳遞。如果執(zhí)行更新失敗,則會輸出日志信息。
5. 查詢數(shù)據(jù)
完成了數(shù)據(jù)的插入之后,我們還需要從表中查詢數(shù)據(jù)。
如果我們想要查詢 users 表中的所有數(shù)據(jù),我們需要編寫查詢語句:
“`swift
let query = “SELECT * FROM users”
“`
在這個例子中,我們將查詢所有列的值。
然后,我們可以執(zhí)行查詢語句:
“`swift
let resultSet = database.executeQuery(query, withArgumentsIn: [])
while resultSet.next() {
let id = resultSet.int(forColumn: “id”)
let name = resultSet.string(forColumn: “name”)
let age = resultSet.int(forColumn: “age”)
print(“\(id), \(name), \(age)”)
}
“`
在這個例子中,我們調(diào)用 executeQuery 方法進行查詢,返回一個 FMResultSet 對象。通過 FMResultSet 對象,我們可以輪詢數(shù)據(jù)集中的每一行,并將行中的值解析為想要的數(shù)據(jù)類型。在本例中,我們將每一行的 id、name 和 age 列的值讀取到變量中,并輸出日志信息。
使用 Swift 在真機上創(chuàng)建 SQLite 數(shù)據(jù)庫非常簡單。我們只需要導入 FMDB 庫并進行初始化,之后就可以像 SQL 語句一樣使用數(shù)據(jù)庫了。
在本文中,我們學習了如何使用 Swift 和 FMDB 創(chuàng)建 SQLite 數(shù)據(jù)庫,如何創(chuàng)建表、插入數(shù)據(jù)和查詢數(shù)據(jù)。希望這篇文章可以幫助你更快更好地完成你的 Swift 項目開發(fā)。
相關(guān)問題拓展閱讀:
- XCFramework制作
- Swift for Windows怎么在Win7系統(tǒng)環(huán)境下操作?學習
- 關(guān)于Swift打包的總結(jié)
XCFramework制作
XCFramework 是蘋果官方推薦的、支持的,可以更方便的表示一個多個平臺和架構(gòu)的分發(fā)二進制的格式,需要XCode11以上。
先將工程編譯為 iphoneSimulator架構(gòu)
接下來,我們來編譯真機的架構(gòu)
這樣我們就生成了模擬器架構(gòu)下和真機架構(gòu)下的打包文件
在 xcarchive 文件中,在 Product 文件夾下,存放著相對應的庫文件。
接下來,我們將這兩個架構(gòu)下的framework進行合并,我們使用 lipo 命令
我們會遇到一個 have the same architectures (arm64) and can’t be in the same fat output file 的錯誤
這是因為模擬器架構(gòu)下的靜態(tài)庫有 arm64 ,真機架構(gòu)下的靜態(tài)庫也有 arm64 ,有相同的架構(gòu)導致不能合并。 我們將 x86_64 架構(gòu)從靜態(tài)庫文件中提取出來,這樣就保證了只有一種架構(gòu),不會重復。
然后我們在來進行合并,在 archives 的同目錄下,我們新建lipo文件夾,并將產(chǎn)出存放到該目錄。
接下來,我們還需要給靜態(tài)庫文件配置頭文件和資源文件等信息,比較繁瑣。使用lipo命令來創(chuàng)建靜態(tài)庫存在兩個問題:
1,含有相同架構(gòu)的兩個靜態(tài)庫不能合并。
2,配置頭文件和資源文件比較繁瑣。
和傳統(tǒng)的framework相比:
接下來御碧鍵我們創(chuàng)建一個 xcframework
這樣我們就生成了 xcframework文件 。
使用xcframework創(chuàng)建的靜態(tài)庫沒有出現(xiàn)含有重復架構(gòu)的情況,并且也有頭文件信息
在本例中我遇到了一個 No ‘swiftinterface’ files found within 的錯誤,這個需要將project文件中的
BUILD_FOR_LIBRARIES_FOR_DISTRIBUTION
設(shè)置為
YES
,然后,重新編譯,就可以了。
新建一個工程,然后將 LEEAlert.xcframework 加入到 Frameworks里面
然后,導入頭文件,就可以使用了
當我們將文件拖慧困入Xcode中,Xcode會根據(jù)我們運行的架構(gòu),選擇相對應架構(gòu)的文件。如果我們運行的是模擬器,只會拷貝x86架構(gòu)的文件,如果運行的是真機設(shè)備,只會拷貝arm64架構(gòu)的文件,這樣可以減少App包的體積。
這樣我們就使用XCFramework來完成了靜態(tài)庫的制作,相比較于 lipo ,xcframework有幾個有點:
如果使用Xcode來制作靜態(tài)庫,有興趣的可以鎮(zhèn)巧參考一下這篇文章 XCode12制作Swift和OC混編靜態(tài)庫
Swift for Windows怎么在Win7系統(tǒng)環(huán)境下操作?學習
swift語言是一門編程語言,該語言的前身是Objective-C,后經(jīng)功能增強及系統(tǒng)擴展而產(chǎn)生swift語言。蘋果官方宣稱Swift的特點是:快速、現(xiàn)代、安全、互動,且全面優(yōu)于Objective-C語言。當然swift僅僅只是一種編程語言,其性能的發(fā)揮是要依靠功能強大的集成開發(fā)環(huán)境來提升。Xcode Playgrounds功能是Swift為蘋果開發(fā)工具帶來的更大創(chuàng)新,該功能提供強大的集成開發(fā)功能,借此可以快速開發(fā)應用程序,,能讓Swift源代碼在撰寫過程中能實時顯示出其運行結(jié)果。1、必須擁有一臺蘋果電腦。因為集成開發(fā)環(huán)境XCode只能運行在OS X系統(tǒng)上。2、電腦系統(tǒng)必須在OS 10.9.3及以上。3、電腦必須安裝Xcode集成開發(fā)環(huán)境。直接登陸swift官網(wǎng)(developer.apple.com/swift/),點擊界面中的“Download “The 鈕來獲取工具的下載。在蘋果官網(wǎng)上,點擊“MAC”導航欄,即可獲取。將系統(tǒng)升級至最新版本,同時安裝“Xcode Beta6”和“swift”編程工具后,就可以啟動“Xcode”來創(chuàng)建工程,開啟開發(fā)應用之旅啦。1.在windows中無法編譯swift,Apple推出這個語言只是完善封閉的生態(tài)圈,既然這樣,windows中無法編譯swift,微軟是無法編譯的。所以,要在OS個平臺上使用,另外如果有一天windows版的開發(fā)環(huán)境,也不一穩(wěn)定。Swift是一種新的編程語言,用于編寫 iOS 和 OS X 應用。Swift 結(jié)合了 C 和 Objective-C 的優(yōu)點并且不受C兼容性的限制。Swift 采用安全的編程模式并添加了很多新特性,這將使編程更簡單,更靈活,也更有趣。Swift 是基于成熟而且倍受喜愛得 Cocoa 和 Cocoa Touch 框架,他的降臨將重新定義軟件開發(fā)。2.Swift的開發(fā)從很久之前就開始了。為了給 Swift 打好基礎(chǔ),蘋果公司改進了編譯器,調(diào)試器和框架結(jié)構(gòu)。我們使用自動引用計數(shù)(Automatic Reference Counting, ARC)來簡化內(nèi)存管理。我們在 Foundation 和 Cocoa的基礎(chǔ)上構(gòu)建框架棧并將其標準化。Objective-C 本身支持塊、語法和模塊,所以框架可以輕松支持現(xiàn)代編程語言技術(shù)。正是得益于這些基礎(chǔ)工作,我們現(xiàn)在才能發(fā)布這樣一個用于未來蘋果軟件開發(fā)的新語言。Objective-C 開發(fā)者對 Swift 并不會感到陌生。它采用了 Objective-C 的命名參數(shù)以及動態(tài)對象模型,可以無縫對接到現(xiàn)有的 Cocoa 框架,并且可以兼容 Objective-C 代碼。在此基礎(chǔ)之上,Swift 還有許多新特性并且支持過程式編程和面向?qū)ο缶幊?。可以,但是很費力1、Apple推出swift語言只不過是完善他的這個封閉的生態(tài)圈,是在MAC系統(tǒng)的基礎(chǔ)開發(fā)的2、在Windows搭載swift語言環(huán)境后就可以學習swift語言,但是會存在兼容問題3、搭載swift語言環(huán)境在 土豆網(wǎng)里有視頻教程(進入土豆網(wǎng),搜索swift語言搭載)4、Swift是Apple在WWDC2023所發(fā)布的一門編程語言,用來撰寫OS X和iOS應用程序。在設(shè)計Swift時.就有意和Objective-C共存,Objective-C是Apple操作系統(tǒng)在導入Swift前使用的編程語言Swift是一門編程語言,該語言用于開發(fā)OS X和iOS應用程序。在正式開發(fā)應用程序前,我們需要搭建Swift開發(fā)環(huán)境,以便更好友好的使用各種開發(fā)工具和語言進行快速應用開發(fā)。由于Swift開發(fā)環(huán)境需要在OS X系統(tǒng)中運行,因此其環(huán)境的搭建將不同于Windows環(huán)境,下面就一起來學習一下swift開發(fā)環(huán)境的搭建方法。1、必須擁有一臺蘋果電腦。因為集成開發(fā)環(huán)境XCode只能運行在OS X系統(tǒng)上。2、電腦系統(tǒng)必須在OS 10.9.3及以上。3、電腦必須安裝Xcode集成開發(fā)環(huán)境。直接登陸swift官網(wǎng)來獲取工具的下載。在蘋果官網(wǎng)上,點擊“MAC”導航欄,即可獲取。將系統(tǒng)升級至最新版本,同時安裝“Xcode Beta6”和“swift”編程工具后,就可以啟動“Xcode”來創(chuàng)建工程,開啟開發(fā)應用之旅啦。2023年最新的歐陽堅的《swift開發(fā)實戰(zhàn)權(quán)威指南》你可以看一看,知識很全面!現(xiàn)在好像只有當當網(wǎng)上能購買吧,你可以試試:1.在windows中無法編譯swift,Apple推出這個語言只是完善封閉的生態(tài)圈,既然這樣,windows中無法編譯swift,微軟是無法編譯的。所以,要在OS個平臺上使用,另外如果有一天windows版的開發(fā)環(huán)境,也不一穩(wěn)定。Swift是一種新的編程語言,用于編寫 iOS 和 OS X 應用。Swift 結(jié)合了 C 和 Objective-C 的優(yōu)點并且不受C兼容性的限制。Swift 采用安全的編程模式并添加了很多新特性,這將使編程更簡單,更靈活,也更有趣。Swift 是基于成熟而且倍受喜愛得 Cocoa 和 Cocoa Touch 框架,他的降臨將重新定義軟件開發(fā)。2.Swift的開發(fā)從很久之前就開始了。為了給 Swift 打好基礎(chǔ),蘋果公司改進了編譯器,調(diào)試器和框架結(jié)構(gòu)。我們使用自動引用計數(shù)(Automatic Reference Counting, ARC)來簡化內(nèi)存管理。我們在 Foundation 和 Cocoa的基礎(chǔ)上構(gòu)建框架棧并將其標準化。Objective-C 本身支持塊、語法和模塊,所以框架可以輕松支持現(xiàn)代編程語言技術(shù)。正是得益于這些基礎(chǔ)工作,我們現(xiàn)在才能發(fā)布這樣一個用于未來蘋果軟件開發(fā)的新語言。Objective-C 開發(fā)者對 Swift 并不會感到陌生。它采用了 Objective-C 的命名參數(shù)以及動態(tài)對象模型,可以無縫對接到現(xiàn)有的 Cocoa 框架,并且可以兼容 Objective-C 代碼。在此基礎(chǔ)之上,Swift 還有許多新特性并且支持過程式編程和面向?qū)ο缶幊?。下載vmware player(免費),在下載個linux的虛擬版本(裝也可以),本地設(shè)置好,用putty或者其他ssh工具連接本地虛擬機。建議不要使用vmware worktion,之一它收費,第二你用它會有遲鈍感,不管你機器有多好。而player就是相當于一個播放器,個人學習足夠用了,里面安裝軟件和其他操作同worktion一樣。在企業(yè)一般也不會直接操作服務器,也是ssh連接的,有安全多用戶等原因吧。你說的我都可以做,沒問題,如果我還想裝個oracle數(shù)據(jù)庫怎么辦?應該是在本地安裝了吧,還是在vm里安裝呢本地,虛擬機都可以,不管你在哪里安裝,你用到的接口都是一致的。。。。操作界面也一致,企業(yè)一般在unix安裝,但也是在終端或者windows下遠程連接使用,除了系統(tǒng)管理員一般不直接主機操作。
關(guān)于Swift打包的總結(jié)
我這里就不描述打包的步驟了,網(wǎng)上有很多文章介紹。我這里主要是講打包要注意的事情。不讓打完包你也稀里糊涂的不知道怎么用。
開發(fā)包:只能在模擬器上面跑
發(fā)布包:只能在真機上面跑
當你打包成功之后,會在Products下面出現(xiàn).framework文件,雙擊進入所在文件夾
就可以看到一個info.plist文件,雙擊打開。這個就是代表模擬器上面可以運行的包
這個是代表個在真機上面運行的包
然后選擇,這些模擬其中的任何一個。按Command+B編譯,就可以得到你想要的在模擬器上運行的包了
如果你想編譯一個在真機上面的包,就需要如下圖的兩個步驟
其實是否能在模擬器上面運行的最主要的還是編譯設(shè)備的選擇。我這里這樣配合著使用是怕小伙伴們提交審核的時候出現(xiàn)問題。具體有什么問題這里就不說了,可以自己去碰一下壁。
看到這里是不是覺得很神奇?我也是抱著僥幸的心理試了一下,結(jié)果成功了。
不過要配置好。
這兩張就是我的設(shè)置。我設(shè)置的是在真機上面跑的包為當前運行的包,如果要改在模擬器上面運行把兩個文件的勾互換就行了。
哎呀太困了,就寫到這里吧?。∶魈爝€要上班。。。。
關(guān)于swift 真機創(chuàng)建數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)公司提供專業(yè)的建站服務,為您量身定制,歡迎來電(028-86922220)為您打造專屬于企業(yè)本身的網(wǎng)絡品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專業(yè)的網(wǎng)站建設(shè)、設(shè)計、制作等服務,是一家以網(wǎng)站建設(shè)為主要業(yè)務的公司,在網(wǎng)站建設(shè)、設(shè)計和制作領(lǐng)域具有豐富的經(jīng)驗。
網(wǎng)站題目:使用Swift在真機上創(chuàng)建數(shù)據(jù)庫,一鍵完成(swift真機創(chuàng)建數(shù)據(jù)庫)
轉(zhuǎn)載源于:http://www.5511xx.com/article/dhdedep.html


咨詢
建站咨詢
