Swift 3.0 使用Core Data
swift版本:3.0
Xcode版本:8.0
iOS版本:10.0
自iOS10 和swift3.0 之后,苹果的访问CoreData的方法发生了很大改变,简洁了许多,下面的内容是从0开始建立一个entity,并实现其存储和读取的功能。
注:这个是一种convenience方法,即快速实现。所以并不需要新建对应于entity的class
1.新建工程
没什么好说的,勾选 Use Core Data
2.打开xcdatamodeld文件,新建一个entity,我们叫它Person,然后在右侧的Attributes里面增加属性,这里添加了name和age两个属性,type自选
3.获取Context,为了方便使用,这里封装成一个函数
注意!!:在对应的swift文件内需要先 import CoreData
func getContext () -> NSManagedObjectContext {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
return appDelegate.persistentContainer.viewContext
}
4.存储一条新数据
func storePerson(name:String, age:Int){
let context = getContext()
// 定义一个entity,这个entity一定要在xcdatamodeld中做好定义
let entity = NSEntityDescription.entity(forEntityName: "Person", in: context)
let person = NSManagedObject(entity: entity!, insertInto: context)
person.setValue(name, forKey: "name")
person.setValue(age, forKey: "age")
do {
try context.save()
print("saved")
}catch{
print(error)
}
}
5.获取entity的全部内容
// 获取某一entity的所有数据
func getPerson(){
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Person")
do {
let searchResults = try getContext().fetch(fetchRequest)
print("numbers of \(searchResults.count)")
for p in (searchResults as! [NSManagedObject]){
print("name: \(p.value(forKey: "name")!) age: \(p.value(forKey: "age")!)")
}
} catch {
print(error)
}
}
这样数据就可以完全的写入APP内部了
放上完整demo的链接
完整demo
效果截图
参考:
https://learnappdevelopment.com/uncategorized/how-to-use-core-data-in-ios-10-swift-3/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2015-10-10 swift 自定义TabBarItem
2015-10-10 UITabBarController中自定义UITabBar
2015-10-10 IOS引导页的编写
2015-10-10 Swift Error fatal error: unexpectedly found nil while unwrapping an Optional value