随着移动应用的日益普及,管理和保存数据成为了移动应用必不可少的组成部分。而使用数据库则是一种最为基本的数据管理方式。
在 iOS 系统下,开发者可以选择使用 Core Data 框架进行数据持久化,也可以使用 SQLite 数据库进行数据管理。相较于 Core Data 框架,使用 SQLite 进行数据管理可以更加灵活和自由,同时也可以通过 SQL 语句实现更为复杂的数据查询和操作。
然而,对于许多刚刚接触 iOS 开发的初学者来说,在真机上创建 SQLite 数据库并不是一件简单的事情。他们需要学习如何使用 Xcode 中的工具或者第三方库来完成数据库的创建与管理,这不仅需要花费相当长的时间,同时也往往容易出错。
针对这个问题,本文将介绍如何使用 Swift 在真机上一键创建 SQLite 数据库,从而方便初学者和快速开发者快速实现数据管理。
1. 安装 FMDB
在 Swift 中,我们可以使用 FMDB(https://github.com/ccgus/fmdb)库来简化 SQLite 数据库的创建和管理。FMDB 是一个轻量级的 Objective-C 封装库,可以方便地在 Swift 项目中使用。
你可以使用 CocoaPods 来安装 FMDB:
“`
pod ‘FMDB’
“`
2. 导入头文件,初始化数据库
在你想要使用 SQLite 数据库的类中,你需要导入 FMDB 的头文件并进行初始化。
导入 FMDB 头文件:
“`swift
import FMDB
“`
在类中定义一个 FMDatabase 对象:
“`swift
let database: FMDatabase!
“`
在类的初始化方法中,进行数据库的初始化:
“`swift
override init() {
if let docsDir = NSSearchPathForDirectoriesInDomns(.documentDirectory, .userDomnMask, true).first {
let databasePath = docsDir + “/database.sqlite”
database = FMDatabase(path: databasePath)
}
super.init()
}
“`
在这个例子中,我们将 SQLite 数据库文件保存在程序的文档文件夹中。你也可以选择将它保存在任何其他位置。需要注意,不能把 SQLite 数据库保存在应用程序包中,因为应用程序包是只读的。
3. 创建数据库
在数据库初始化后,我们需要创建一个表来保存数据。
我们需要定义一个 SQL 语句:
“`swift
let query = “CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)”
“`
在这个例子中,我们定义了一个 users 的表,它有三个列分别是 id、name 和 age。id 列是主键,INTEGER 数据类型,因此可以自增。name 和 age 列分别是 TEXT 和 INTEGER 数据类型。
然后,我们可以执行 SQL 语句:
“`swift
if !database.executeStatements(query) {
print(“Fled to create table”)
}
“`
如果查询执行成功,那么 users 表将会被创建。如果查询执行失败,则会输出日志信息。
4. 插入数据
完成了表的创建之后,我们还需要向表中插入数据。
我们需要定义 SQL 语句:
“`swift
let query = “INSERT INTO users (name, age) VALUES (?, ?)”
“`
在这个例子中,我们定义了一个插入语句,它将会向 users 表中插入一条记录。插入的数据在语句中使用 ? 占位符表示。
然后,我们可以将数据插入到 users 表中:
“`swift
let name = “张三”
let age = 20
if !database.executeUpdate(query, withArgumentsIn: [name, age]) {
print(“Fled to insert data”)
}
“`
在这个例子中,我们将数据张三和 20 分别赋值给 name 和 age。调用 FMDatabase 的 executeUpdate 方法,执行 SQL 语句并将数据作为参数传递。如果执行更新失败,则会输出日志信息。
5. 查询数据
完成了数据的插入之后,我们还需要从表中查询数据。
如果我们想要查询 users 表中的所有数据,我们需要编写查询语句:
“`swift
let query = “SELECT * FROM users”
“`
在这个例子中,我们将查询所有列的值。
然后,我们可以执行查询语句:
“`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)”)
}
“`
在这个例子中,我们调用 executeQuery 方法进行查询,返回一个 FMResultSet 对象。通过 FMResultSet 对象,我们可以轮询数据集中的每一行,并将行中的值解析为想要的数据类型。在本例中,我们将每一行的 id、name 和 age 列的值读取到变量中,并输出日志信息。
使用 Swift 在真机上创建 SQLite 数据库非常简单。我们只需要导入 FMDB 库并进行初始化,之后就可以像 SQL 语句一样使用数据库了。
在本文中,我们学习了如何使用 Swift 和 FMDB 创建 SQLite 数据库,如何创建表、插入数据和查询数据。希望这篇文章可以帮助你更快更好地完成你的 Swift 项目开发。
相关问题拓展阅读:
XCFramework 是苹果官方推荐的、支持的,可以更方便的表示一个多个平台和架构的分发二进制的格式,需要XCode11以上。
先将工程编译为 iphoneSimulator架构
接下来,我们来编译真机的架构
这样我们就生成了模拟器架构下和真机架构下的打包文件
在 xcarchive 文件中,在 Product 文件夹下,存放着相对应的库文件。
接下来,我们将这两个架构下的framework进行合并,我们使用 lipo 命令
我们会遇到一个 have the same architectures (arm64) and can’t be in the same fat output file 的错误
这是因为模拟器架构下的静态库有 arm64 ,真机架构下的静态库也有 arm64 ,有相同的架构导致不能合并。 我们将 x86_64 架构从静态库文件中提取出来,这样就保证了只有一种架构,不会重复。
然后我们在来进行合并,在 archives 的同目录下,我们新建lipo文件夹,并将产出存放到该目录。
接下来,我们还需要给静态库文件配置头文件和资源文件等信息,比较繁琐。使用lipo命令来创建静态库存在两个问题:
1,含有相同架构的两个静态库不能合并。
2,配置头文件和资源文件比较繁琐。
和传统的framework相比:
接下来御碧键我们创建一个 xcframework
这样我们就生成了 xcframework文件 。
使用xcframework创建的静态库没有出现含有重复架构的情况,并且也有头文件信息
在本例中我遇到了一个 No ‘swiftinterface’ files found within 的错误,这个需要将project文件中的
BUILD_FOR_LIBRARIES_FOR_DISTRIBUTION
设置为
YES
,然后,重新编译,就可以了。
新建一个工程,然后将 LEEAlert.xcframework 加入到 Frameworks里面
然后,导入头文件,就可以使用了
当我们将文件拖慧困入Xcode中,Xcode会根据我们运行的架构,选择相对应架构的文件。如果我们运行的是模拟器,只会拷贝x86架构的文件,如果运行的是真机设备,只会拷贝arm64架构的文件,这样可以减少App包的体积。
这样我们就使用XCFramework来完成了静态库的制作,相比较于 lipo ,xcframework有几个有点:
如果使用Xcode来制作静态库,有兴趣的可以镇巧参考一下这篇文章 XCode12制作Swift和OC混编静态库
swift语言是一门编程语言,该语言的前身是Objective-C,后经功能增强及系统扩展而产生swift语言。苹果官方宣称Swift的特点是:快速、现代、安全、互动,且全面优于Objective-C语言。当然swift仅仅只是一种编程语言,其性能的发挥是要依靠功能强大的集成开发环境来提升。Xcode Playgrounds功能是Swift为苹果开发工具带来的更大创新,该功能提供强大的集成开发功能,借此可以快速开发应用程序,,能让Swift源代码在撰写过程中能实时显示出其运行结果。1、必须拥有一台苹果电脑。因为集成开发环境XCode只能运行在OS X系统上。2、电脑系统必须在OS 10.9.3及以上。3、电脑必须安装Xcode集成开发环境。直接登陆swift官网(developer.apple.com/swift/),点击界面中的“Download “The 钮来获取工具的下载。在苹果官网上,点击“MAC”导航栏,即可获取。将系统升级至最新版本,同时安装“Xcode Beta6”和“swift”编程工具后,就可以启动“Xcode”来创建工程,开启开发应用之旅啦。1.在windows中无法编译swift,Apple推出这个语言只是完善封闭的生态圈,既然这样,windows中无法编译swift,微软是无法编译的。所以,要在OS个平台上使用,另外如果有一天windows版的开发环境,也不一稳定。Swift是一种新的编程语言,用于编写 iOS 和 OS X 应用。Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣。Swift 是基于成熟而且倍受喜爱得 Cocoa 和 Cocoa Touch 框架,他的降临将重新定义软件开发。2.Swift的开发从很久之前就开始了。为了给 Swift 打好基础,苹果公司改进了编译器,调试器和框架结构。我们使用自动引用计数(Automatic Reference Counting, ARC)来简化内存管理。我们在 Foundation 和 Cocoa的基础上构建框架栈并将其标准化。Objective-C 本身支持块、语法和模块,所以框架可以轻松支持现代编程语言技术。正是得益于这些基础工作,我们现在才能发布这样一个用于未来苹果软件开发的新语言。Objective-C 开发者对 Swift 并不会感到陌生。它采用了 Objective-C 的命名参数以及动态对象模型,可以无缝对接到现有的 Cocoa 框架,并且可以兼容 Objective-C 代码。在此基础之上,Swift 还有许多新特性并且支持过程式编程和面向对象编程。可以,但是很费力1、Apple推出swift语言只不过是完善他的这个封闭的生态圈,是在MAC系统的基础开发的2、在Windows搭载swift语言环境后就可以学习swift语言,但是会存在兼容问题3、搭载swift语言环境在 土豆网里有视频教程(进入土豆网,搜索swift语言搭载)4、Swift是Apple在WWDC2023所发布的一门编程语言,用来撰写OS X和iOS应用程序。在设计Swift时.就有意和Objective-C共存,Objective-C是Apple操作系统在导入Swift前使用的编程语言Swift是一门编程语言,该语言用于开发OS X和iOS应用程序。在正式开发应用程序前,我们需要搭建Swift开发环境,以便更好友好的使用各种开发工具和语言进行快速应用开发。由于Swift开发环境需要在OS X系统中运行,因此其环境的搭建将不同于Windows环境,下面就一起来学习一下swift开发环境的搭建方法。1、必须拥有一台苹果电脑。因为集成开发环境XCode只能运行在OS X系统上。2、电脑系统必须在OS 10.9.3及以上。3、电脑必须安装Xcode集成开发环境。直接登陆swift官网来获取工具的下载。在苹果官网上,点击“MAC”导航栏,即可获取。将系统升级至最新版本,同时安装“Xcode Beta6”和“swift”编程工具后,就可以启动“Xcode”来创建工程,开启开发应用之旅啦。2023年最新的欧阳坚的《swift开发实战权威指南》你可以看一看,知识很全面!现在好像只有当当网上能购买吧,你可以试试:1.在windows中无法编译swift,Apple推出这个语言只是完善封闭的生态圈,既然这样,windows中无法编译swift,微软是无法编译的。所以,要在OS个平台上使用,另外如果有一天windows版的开发环境,也不一稳定。Swift是一种新的编程语言,用于编写 iOS 和 OS X 应用。Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣。Swift 是基于成熟而且倍受喜爱得 Cocoa 和 Cocoa Touch 框架,他的降临将重新定义软件开发。2.Swift的开发从很久之前就开始了。为了给 Swift 打好基础,苹果公司改进了编译器,调试器和框架结构。我们使用自动引用计数(Automatic Reference Counting, ARC)来简化内存管理。我们在 Foundation 和 Cocoa的基础上构建框架栈并将其标准化。Objective-C 本身支持块、语法和模块,所以框架可以轻松支持现代编程语言技术。正是得益于这些基础工作,我们现在才能发布这样一个用于未来苹果软件开发的新语言。Objective-C 开发者对 Swift 并不会感到陌生。它采用了 Objective-C 的命名参数以及动态对象模型,可以无缝对接到现有的 Cocoa 框架,并且可以兼容 Objective-C 代码。在此基础之上,Swift 还有许多新特性并且支持过程式编程和面向对象编程。下载vmware player(免费),在下载个linux的虚拟版本(装也可以),本地设置好,用putty或者其他ssh工具连接本地虚拟机。建议不要使用vmware worktion,之一它收费,第二你用它会有迟钝感,不管你机器有多好。而player就是相当于一个播放器,个人学习足够用了,里面安装软件和其他操作同worktion一样。在企业一般也不会直接操作服务器,也是ssh连接的,有安全多用户等原因吧。你说的我都可以做,没问题,如果我还想装个oracle数据库怎么办?应该是在本地安装了吧,还是在vm里安装呢本地,虚拟机都可以,不管你在哪里安装,你用到的接口都是一致的。。。。操作界面也一致,企业一般在unix安装,但也是在终端或者windows下远程连接使用,除了系统管理员一般不直接主机操作。
我这里就不描述打包的步骤了,网上有很多文章介绍。我这里主要是讲打包要注意的事情。不让打完包你也稀里糊涂的不知道怎么用。
开发包:只能在模拟器上面跑
发布包:只能在真机上面跑
当你打包成功之后,会在Products下面出现.framework文件,双击进入所在文件夹
就可以看到一个info.plist文件,双击打开。这个就是代表模拟器上面可以运行的包
这个是代表个在真机上面运行的包
然后选择,这些模拟其中的任何一个。按Command+B编译,就可以得到你想要的在模拟器上运行的包了
如果你想编译一个在真机上面的包,就需要如下图的两个步骤
其实是否能在模拟器上面运行的最主要的还是编译设备的选择。我这里这样配合着使用是怕小伙伴们提交审核的时候出现问题。具体有什么问题这里就不说了,可以自己去碰一下壁。
看到这里是不是觉得很神奇?我也是抱着侥幸的心理试了一下,结果成功了。
不过要配置好。
这两张就是我的设置。我设置的是在真机上面跑的包为当前运行的包,如果要改在模拟器上面运行把两个文件的勾互换就行了。
哎呀太困了,就写到这里吧!!明天还要上班。。。。
关于swift 真机创建数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
创新互联成都网站建设公司提供专业的建站服务,为您量身定制,欢迎来电(028-86922220)为您打造专属于企业本身的网络品牌形象。
成都创新互联品牌官网提供专业的网站建设、设计、制作等服务,是一家以网站建设为主要业务的公司,在网站建设、设计和制作领域具有丰富的经验。
分享文章:使用Swift在真机上创建数据库,一键完成(swift真机创建数据库)
标题链接:http://www.shufengxianlan.com/qtweb/news0/354800.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联