日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
使用Swift在真機(jī)上創(chuàng)建數(shù)據(jù)庫(kù),一鍵完成(swift真機(jī)創(chuàng)建數(shù)據(jù)庫(kù))

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

在 iOS 系統(tǒng)下,開發(fā)者可以選擇使用 Core Data 框架進(jìn)行數(shù)據(jù)持久化,也可以使用 SQLite 數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)管理。相較于 Core Data 框架,使用 SQLite 進(jìn)行數(shù)據(jù)管理可以更加靈活和自由,同時(shí)也可以通過 SQL 語(yǔ)句實(shí)現(xiàn)更為復(fù)雜的數(shù)據(jù)查詢和操作。

然而,對(duì)于許多剛剛接觸 iOS 開發(fā)的初學(xué)者來(lái)說(shuō),在真機(jī)上創(chuàng)建 SQLite 數(shù)據(jù)庫(kù)并不是一件簡(jiǎn)單的事情。他們需要學(xué)習(xí)如何使用 Xcode 中的工具或者第三方庫(kù)來(lái)完成數(shù)據(jù)庫(kù)的創(chuàng)建與管理,這不僅需要花費(fèi)相當(dāng)長(zhǎng)的時(shí)間,同時(shí)也往往容易出錯(cuò)。

針對(duì)這個(gè)問題,本文將介紹如何使用 Swift 在真機(jī)上一鍵創(chuàng)建 SQLite 數(shù)據(jù)庫(kù),從而方便初學(xué)者和快速開發(fā)者快速實(shí)現(xiàn)數(shù)據(jù)管理。

1. 安裝 FMDB

在 Swift 中,我們可以使用 FMDB(https://github.com/ccgus/fmdb)庫(kù)來(lái)簡(jiǎn)化 SQLite 數(shù)據(jù)庫(kù)的創(chuàng)建和管理。FMDB 是一個(gè)輕量級(jí)的 Objective-C 封裝庫(kù),可以方便地在 Swift 項(xiàng)目中使用。

你可以使用 CocoaPods 來(lái)安裝 FMDB:

“`

pod ‘FMDB’

“`

2. 導(dǎo)入頭文件,初始化數(shù)據(jù)庫(kù)

在你想要使用 SQLite 數(shù)據(jù)庫(kù)的類中,你需要導(dǎo)入 FMDB 的頭文件并進(jìn)行初始化。

導(dǎo)入 FMDB 頭文件:

“`swift

import FMDB

“`

在類中定義一個(gè) FMDatabase 對(duì)象:

“`swift

let database: FMDatabase!

“`

在類的初始化方法中,進(jìn)行數(shù)據(jù)庫(kù)的初始化:

“`swift

override init() {

if let docsDir = NSSearchPathForDirectoriesInDomns(.documentDirectory, .userDomnMask, true).first {

let databasePath = docsDir + “/database.sqlite”

database = FMDatabase(path: databasePath)

}

super.init()

}

“`

在這個(gè)例子中,我們將 SQLite 數(shù)據(jù)庫(kù)文件保存在程序的文檔文件夾中。你也可以選擇將它保存在任何其他位置。需要注意,不能把 SQLite 數(shù)據(jù)庫(kù)保存在應(yīng)用程序包中,因?yàn)閼?yīng)用程序包是只讀的。

3. 創(chuàng)建數(shù)據(jù)庫(kù)

在數(shù)據(jù)庫(kù)初始化后,我們需要?jiǎng)?chuàng)建一個(gè)表來(lái)保存數(shù)據(jù)。

我們需要定義一個(gè) SQL 語(yǔ)句:

“`swift

let query = “CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)”

“`

在這個(gè)例子中,我們定義了一個(gè) users 的表,它有三個(gè)列分別是 id、name 和 age。id 列是主鍵,INTEGER 數(shù)據(jù)類型,因此可以自增。name 和 age 列分別是 TEXT 和 INTEGER 數(shù)據(jù)類型。

然后,我們可以執(zhí)行 SQL 語(yǔ)句:

“`swift

if !database.executeStatements(query) {

print(“Fled to create table”)

}

“`

如果查詢執(zhí)行成功,那么 users 表將會(huì)被創(chuàng)建。如果查詢執(zhí)行失敗,則會(huì)輸出日志信息。

4. 插入數(shù)據(jù)

完成了表的創(chuàng)建之后,我們還需要向表中插入數(shù)據(jù)。

我們需要定義 SQL 語(yǔ)句:

“`swift

let query = “INSERT INTO users (name, age) VALUES (?, ?)”

“`

在這個(gè)例子中,我們定義了一個(gè)插入語(yǔ)句,它將會(huì)向 users 表中插入一條記錄。插入的數(shù)據(jù)在語(yǔ)句中使用 ? 占位符表示。

然后,我們可以將數(shù)據(jù)插入到 users 表中:

“`swift

let name = “張三”

let age = 20

if !database.executeUpdate(query, withArgumentsIn: [name, age]) {

print(“Fled to insert data”)

}

“`

在這個(gè)例子中,我們將數(shù)據(jù)張三和 20 分別賦值給 name 和 age。調(diào)用 FMDatabase 的 executeUpdate 方法,執(zhí)行 SQL 語(yǔ)句并將數(shù)據(jù)作為參數(shù)傳遞。如果執(zhí)行更新失敗,則會(huì)輸出日志信息。

5. 查詢數(shù)據(jù)

完成了數(shù)據(jù)的插入之后,我們還需要從表中查詢數(shù)據(jù)。

如果我們想要查詢 users 表中的所有數(shù)據(jù),我們需要編寫查詢語(yǔ)句:

“`swift

let query = “SELECT * FROM users”

“`

在這個(gè)例子中,我們將查詢所有列的值。

然后,我們可以執(zhí)行查詢語(yǔ)句:

“`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)”)

}

“`

在這個(gè)例子中,我們調(diào)用 executeQuery 方法進(jìn)行查詢,返回一個(gè) FMResultSet 對(duì)象。通過 FMResultSet 對(duì)象,我們可以輪詢數(shù)據(jù)集中的每一行,并將行中的值解析為想要的數(shù)據(jù)類型。在本例中,我們將每一行的 id、name 和 age 列的值讀取到變量中,并輸出日志信息。

使用 Swift 在真機(jī)上創(chuàng)建 SQLite 數(shù)據(jù)庫(kù)非常簡(jiǎn)單。我們只需要導(dǎo)入 FMDB 庫(kù)并進(jìn)行初始化,之后就可以像 SQL 語(yǔ)句一樣使用數(shù)據(jù)庫(kù)了。

在本文中,我們學(xué)習(xí)了如何使用 Swift 和 FMDB 創(chuàng)建 SQLite 數(shù)據(jù)庫(kù),如何創(chuàng)建表、插入數(shù)據(jù)和查詢數(shù)據(jù)。希望這篇文章可以幫助你更快更好地完成你的 Swift 項(xiàng)目開發(fā)。

相關(guān)問題拓展閱讀:

  • XCFramework制作
  • Swift for Windows怎么在Win7系統(tǒng)環(huán)境下操作?學(xué)習(xí)
  • 關(guān)于Swift打包的總結(jié)

XCFramework制作

XCFramework 是蘋果官方推薦的、支持的,可以更方便的表示一個(gè)多個(gè)平臺(tái)和架構(gòu)的分發(fā)二進(jìn)制的格式,需要XCode11以上。

先將工程編譯為 iphoneSimulator架構(gòu)

接下來(lái),我們來(lái)編譯真機(jī)的架構(gòu)

這樣我們就生成了模擬器架構(gòu)下和真機(jī)架構(gòu)下的打包文件

在 xcarchive 文件中,在 Product 文件夾下,存放著相對(duì)應(yīng)的庫(kù)文件。

接下來(lái),我們將這兩個(gè)架構(gòu)下的framework進(jìn)行合并,我們使用 lipo 命令

我們會(huì)遇到一個(gè) have the same architectures (arm64) and can’t be in the same fat output file 的錯(cuò)誤

這是因?yàn)槟M器架構(gòu)下的靜態(tài)庫(kù)有 arm64 ,真機(jī)架構(gòu)下的靜態(tài)庫(kù)也有 arm64 ,有相同的架構(gòu)導(dǎo)致不能合并。 我們將 x86_64 架構(gòu)從靜態(tài)庫(kù)文件中提取出來(lái),這樣就保證了只有一種架構(gòu),不會(huì)重復(fù)。

然后我們?cè)趤?lái)進(jìn)行合并,在 archives 的同目錄下,我們新建lipo文件夾,并將產(chǎn)出存放到該目錄。

接下來(lái),我們還需要給靜態(tài)庫(kù)文件配置頭文件和資源文件等信息,比較繁瑣。使用lipo命令來(lái)創(chuàng)建靜態(tài)庫(kù)存在兩個(gè)問題:

1,含有相同架構(gòu)的兩個(gè)靜態(tài)庫(kù)不能合并。

2,配置頭文件和資源文件比較繁瑣。

和傳統(tǒng)的framework相比:

接下來(lái)御碧鍵我們創(chuàng)建一個(gè) xcframework

這樣我們就生成了 xcframework文件 。

使用xcframework創(chuàng)建的靜態(tài)庫(kù)沒有出現(xiàn)含有重復(fù)架構(gòu)的情況,并且也有頭文件信息

在本例中我遇到了一個(gè) No ‘swiftinterface’ files found within 的錯(cuò)誤,這個(gè)需要將project文件中的

BUILD_FOR_LIBRARIES_FOR_DISTRIBUTION

設(shè)置為

YES

,然后,重新編譯,就可以了。

新建一個(gè)工程,然后將 LEEAlert.xcframework 加入到 Frameworks里面

然后,導(dǎo)入頭文件,就可以使用了

當(dāng)我們將文件拖慧困入Xcode中,Xcode會(huì)根據(jù)我們運(yùn)行的架構(gòu),選擇相對(duì)應(yīng)架構(gòu)的文件。如果我們運(yùn)行的是模擬器,只會(huì)拷貝x86架構(gòu)的文件,如果運(yùn)行的是真機(jī)設(shè)備,只會(huì)拷貝arm64架構(gòu)的文件,這樣可以減少App包的體積。

這樣我們就使用XCFramework來(lái)完成了靜態(tài)庫(kù)的制作,相比較于 lipo ,xcframework有幾個(gè)有點(diǎn):

如果使用Xcode來(lái)制作靜態(tài)庫(kù),有興趣的可以鎮(zhèn)巧參考一下這篇文章 XCode12制作Swift和OC混編?kù)o態(tài)庫(kù)

Swift for Windows怎么在Win7系統(tǒng)環(huán)境下操作?學(xué)習(xí)

swift語(yǔ)言是一門編程語(yǔ)言,該語(yǔ)言的前身是Objective-C,后經(jīng)功能增強(qiáng)及系統(tǒng)擴(kuò)展而產(chǎn)生swift語(yǔ)言。蘋果官方宣稱Swift的特點(diǎn)是:快速、現(xiàn)代、安全、互動(dòng),且全面優(yōu)于Objective-C語(yǔ)言。當(dāng)然swift僅僅只是一種編程語(yǔ)言,其性能的發(fā)揮是要依靠功能強(qiáng)大的集成開發(fā)環(huán)境來(lái)提升。Xcode Playgrounds功能是Swift為蘋果開發(fā)工具帶來(lái)的更大創(chuàng)新,該功能提供強(qiáng)大的集成開發(fā)功能,借此可以快速開發(fā)應(yīng)用程序,,能讓Swift源代碼在撰寫過程中能實(shí)時(shí)顯示出其運(yùn)行結(jié)果。1、必須擁有一臺(tái)蘋果電腦。因?yàn)榧砷_發(fā)環(huán)境XCode只能運(yùn)行在OS X系統(tǒng)上。2、電腦系統(tǒng)必須在OS 10.9.3及以上。3、電腦必須安裝Xcode集成開發(fā)環(huán)境。直接登陸swift官網(wǎng)(developer.apple.com/swift/),點(diǎn)擊界面中的“Download “The 鈕來(lái)獲取工具的下載。在蘋果官網(wǎng)上,點(diǎn)擊“MAC”導(dǎo)航欄,即可獲取。將系統(tǒng)升級(jí)至最新版本,同時(shí)安裝“Xcode Beta6”和“swift”編程工具后,就可以啟動(dòng)“Xcode”來(lái)創(chuàng)建工程,開啟開發(fā)應(yīng)用之旅啦。1.在windows中無(wú)法編譯swift,Apple推出這個(gè)語(yǔ)言只是完善封閉的生態(tài)圈,既然這樣,windows中無(wú)法編譯swift,微軟是無(wú)法編譯的。所以,要在OS個(gè)平臺(tái)上使用,另外如果有一天windows版的開發(fā)環(huán)境,也不一穩(wěn)定。Swift是一種新的編程語(yǔ)言,用于編寫 iOS 和 OS X 應(yīng)用。Swift 結(jié)合了 C 和 Objective-C 的優(yōu)點(diǎn)并且不受C兼容性的限制。Swift 采用安全的編程模式并添加了很多新特性,這將使編程更簡(jiǎn)單,更靈活,也更有趣。Swift 是基于成熟而且倍受喜愛得 Cocoa 和 Cocoa Touch 框架,他的降臨將重新定義軟件開發(fā)。2.Swift的開發(fā)從很久之前就開始了。為了給 Swift 打好基礎(chǔ),蘋果公司改進(jìn)了編譯器,調(diào)試器和框架結(jié)構(gòu)。我們使用自動(dòng)引用計(jì)數(shù)(Automatic Reference Counting, ARC)來(lái)簡(jiǎn)化內(nèi)存管理。我們?cè)?Foundation 和 Cocoa的基礎(chǔ)上構(gòu)建框架棧并將其標(biāo)準(zhǔn)化。Objective-C 本身支持塊、語(yǔ)法和模塊,所以框架可以輕松支持現(xiàn)代編程語(yǔ)言技術(shù)。正是得益于這些基礎(chǔ)工作,我們現(xiàn)在才能發(fā)布這樣一個(gè)用于未來(lái)蘋果軟件開發(fā)的新語(yǔ)言。Objective-C 開發(fā)者對(duì) Swift 并不會(huì)感到陌生。它采用了 Objective-C 的命名參數(shù)以及動(dòng)態(tài)對(duì)象模型,可以無(wú)縫對(duì)接到現(xiàn)有的 Cocoa 框架,并且可以兼容 Objective-C 代碼。在此基礎(chǔ)之上,Swift 還有許多新特性并且支持過程式編程和面向?qū)ο缶幊???梢?,但是很費(fèi)力1、Apple推出swift語(yǔ)言只不過是完善他的這個(gè)封閉的生態(tài)圈,是在MAC系統(tǒng)的基礎(chǔ)開發(fā)的2、在Windows搭載swift語(yǔ)言環(huán)境后就可以學(xué)習(xí)swift語(yǔ)言,但是會(huì)存在兼容問題3、搭載swift語(yǔ)言環(huán)境在 土豆網(wǎng)里有視頻教程(進(jìn)入土豆網(wǎng),搜索swift語(yǔ)言搭載)4、Swift是Apple在WWDC2023所發(fā)布的一門編程語(yǔ)言,用來(lái)撰寫OS X和iOS應(yīng)用程序。在設(shè)計(jì)Swift時(shí).就有意和Objective-C共存,Objective-C是Apple操作系統(tǒng)在導(dǎo)入Swift前使用的編程語(yǔ)言Swift是一門編程語(yǔ)言,該語(yǔ)言用于開發(fā)OS X和iOS應(yīng)用程序。在正式開發(fā)應(yīng)用程序前,我們需要搭建Swift開發(fā)環(huán)境,以便更好友好的使用各種開發(fā)工具和語(yǔ)言進(jìn)行快速應(yīng)用開發(fā)。由于Swift開發(fā)環(huán)境需要在OS X系統(tǒng)中運(yùn)行,因此其環(huán)境的搭建將不同于Windows環(huán)境,下面就一起來(lái)學(xué)習(xí)一下swift開發(fā)環(huán)境的搭建方法。1、必須擁有一臺(tái)蘋果電腦。因?yàn)榧砷_發(fā)環(huán)境XCode只能運(yùn)行在OS X系統(tǒng)上。2、電腦系統(tǒng)必須在OS 10.9.3及以上。3、電腦必須安裝Xcode集成開發(fā)環(huán)境。直接登陸swift官網(wǎng)來(lái)獲取工具的下載。在蘋果官網(wǎng)上,點(diǎn)擊“MAC”導(dǎo)航欄,即可獲取。將系統(tǒng)升級(jí)至最新版本,同時(shí)安裝“Xcode Beta6”和“swift”編程工具后,就可以啟動(dòng)“Xcode”來(lái)創(chuàng)建工程,開啟開發(fā)應(yīng)用之旅啦。2023年最新的歐陽(yáng)堅(jiān)的《swift開發(fā)實(shí)戰(zhàn)權(quán)威指南》你可以看一看,知識(shí)很全面!現(xiàn)在好像只有當(dāng)當(dāng)網(wǎng)上能購(gòu)買吧,你可以試試:1.在windows中無(wú)法編譯swift,Apple推出這個(gè)語(yǔ)言只是完善封閉的生態(tài)圈,既然這樣,windows中無(wú)法編譯swift,微軟是無(wú)法編譯的。所以,要在OS個(gè)平臺(tái)上使用,另外如果有一天windows版的開發(fā)環(huán)境,也不一穩(wěn)定。Swift是一種新的編程語(yǔ)言,用于編寫 iOS 和 OS X 應(yīng)用。Swift 結(jié)合了 C 和 Objective-C 的優(yōu)點(diǎn)并且不受C兼容性的限制。Swift 采用安全的編程模式并添加了很多新特性,這將使編程更簡(jiǎn)單,更靈活,也更有趣。Swift 是基于成熟而且倍受喜愛得 Cocoa 和 Cocoa Touch 框架,他的降臨將重新定義軟件開發(fā)。2.Swift的開發(fā)從很久之前就開始了。為了給 Swift 打好基礎(chǔ),蘋果公司改進(jìn)了編譯器,調(diào)試器和框架結(jié)構(gòu)。我們使用自動(dòng)引用計(jì)數(shù)(Automatic Reference Counting, ARC)來(lái)簡(jiǎn)化內(nèi)存管理。我們?cè)?Foundation 和 Cocoa的基礎(chǔ)上構(gòu)建框架棧并將其標(biāo)準(zhǔn)化。Objective-C 本身支持塊、語(yǔ)法和模塊,所以框架可以輕松支持現(xiàn)代編程語(yǔ)言技術(shù)。正是得益于這些基礎(chǔ)工作,我們現(xiàn)在才能發(fā)布這樣一個(gè)用于未來(lái)蘋果軟件開發(fā)的新語(yǔ)言。Objective-C 開發(fā)者對(duì) Swift 并不會(huì)感到陌生。它采用了 Objective-C 的命名參數(shù)以及動(dòng)態(tài)對(duì)象模型,可以無(wú)縫對(duì)接到現(xiàn)有的 Cocoa 框架,并且可以兼容 Objective-C 代碼。在此基礎(chǔ)之上,Swift 還有許多新特性并且支持過程式編程和面向?qū)ο缶幊?。下載vmware player(免費(fèi)),在下載個(gè)linux的虛擬版本(裝也可以),本地設(shè)置好,用putty或者其他ssh工具連接本地虛擬機(jī)。建議不要使用vmware worktion,之一它收費(fèi),第二你用它會(huì)有遲鈍感,不管你機(jī)器有多好。而player就是相當(dāng)于一個(gè)播放器,個(gè)人學(xué)習(xí)足夠用了,里面安裝軟件和其他操作同worktion一樣。在企業(yè)一般也不會(huì)直接操作服務(wù)器,也是ssh連接的,有安全多用戶等原因吧。你說(shuō)的我都可以做,沒問題,如果我還想裝個(gè)oracle數(shù)據(jù)庫(kù)怎么辦?應(yīng)該是在本地安裝了吧,還是在vm里安裝呢本地,虛擬機(jī)都可以,不管你在哪里安裝,你用到的接口都是一致的。。。。操作界面也一致,企業(yè)一般在unix安裝,但也是在終端或者windows下遠(yuǎn)程連接使用,除了系統(tǒng)管理員一般不直接主機(jī)操作。

關(guān)于Swift打包的總結(jié)

我這里就不描述打包的步驟了,網(wǎng)上有很多文章介紹。我這里主要是講打包要注意的事情。不讓打完包你也稀里糊涂的不知道怎么用。

開發(fā)包:只能在模擬器上面跑

發(fā)布包:只能在真機(jī)上面跑

當(dāng)你打包成功之后,會(huì)在Products下面出現(xiàn).framework文件,雙擊進(jìn)入所在文件夾

就可以看到一個(gè)info.plist文件,雙擊打開。這個(gè)就是代表模擬器上面可以運(yùn)行的包

這個(gè)是代表個(gè)在真機(jī)上面運(yùn)行的包

然后選擇,這些模擬其中的任何一個(gè)。按Command+B編譯,就可以得到你想要的在模擬器上運(yùn)行的包了

如果你想編譯一個(gè)在真機(jī)上面的包,就需要如下圖的兩個(gè)步驟

其實(shí)是否能在模擬器上面運(yùn)行的最主要的還是編譯設(shè)備的選擇。我這里這樣配合著使用是怕小伙伴們提交審核的時(shí)候出現(xiàn)問題。具體有什么問題這里就不說(shuō)了,可以自己去碰一下壁。

看到這里是不是覺得很神奇?我也是抱著僥幸的心理試了一下,結(jié)果成功了。

不過要配置好。

這兩張就是我的設(shè)置。我設(shè)置的是在真機(jī)上面跑的包為當(dāng)前運(yùn)行的包,如果要改在模擬器上面運(yùn)行把兩個(gè)文件的勾互換就行了。

哎呀太困了,就寫到這里吧??!明天還要上班。。。。

關(guān)于swift 真機(jī)創(chuàng)建數(shù)據(jù)庫(kù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)公司提供專業(yè)的建站服務(wù),為您量身定制,歡迎來(lái)電(028-86922220)為您打造專屬于企業(yè)本身的網(wǎng)絡(luò)品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專業(yè)的網(wǎng)站建設(shè)、設(shè)計(jì)、制作等服務(wù),是一家以網(wǎng)站建設(shè)為主要業(yè)務(wù)的公司,在網(wǎng)站建設(shè)、設(shè)計(jì)和制作領(lǐng)域具有豐富的經(jīng)驗(yàn)。


文章名稱:使用Swift在真機(jī)上創(chuàng)建數(shù)據(jù)庫(kù),一鍵完成(swift真機(jī)創(chuàng)建數(shù)據(jù)庫(kù))
文章地址:http://www.dlmjj.cn/article/dhdedep.html