94课:初识 Core Data

课程笔记文集地址:Udemy课程:The Complete iOS 9 Developer Course - Build 18 Apps

92课是 Section 8 的总结。
93课是 Section 9 的介绍

这是 Section 7 的第一节课,慢慢的,也学了快一半多了。

从这节课开始,学习 Core Data 的一些基本知识。

一、创建使用 Core Data 的工程

在新建的工程的时候,勾选 Single View Application:


勾选 Use Core Data,(如果你在上一步使用了其他的模板,就不会出现这个选项了)如下图:

使用 Single View Application 模板,直接勾选 Use Core Data 的好处请见下图:

不仅自动创建了 Lecture94.xcdatamodeld 文件,而且在 AppDelegate.swift 文件里,会自动给你添加和 Core Data 有关的代码。如果使用其他的模板,这些都要自己手动添加。

二、设置类文件

在类的开发引入 CoreData:

import CoreData

使用前需要有的两个方法:

let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context: NSManagedObjectContext = appDel.managedObjectContext

三、写入 Entity

如下图:


四、存储数据

// 首先找到对应的 Entity 
let newUser = NSEntityDescription.insertNewObjectForEntityForName("Users", inManagedObjectContext: context)
// 赋值(字典类型键值)
newUser.setValue("Rob", forKey: "username")
newUser.setValue("pass123", forKey: "password")

执行存储方法,使用 do catch 语法:

do {
    try context.save()
} catch {
    print("有错误!")
}

五、读取数据

这是读取数据的基本方法:

// 找到对应的 Entity 
let request = NSFetchRequest(entityName: "Users")
// 如果想直接获取实际的数据值,需要设置为 false
request.returnsObjectsAsFaults = false
// 开始取出数据,使用 do catch 语法
do {
    let results = try context.executeFetchRequest(request)
    //判断是否存在数据
    if results.count > 0 {
        // 遍历数据
        for result in results as! [NSManagedObject] {
            print(result.valueForKey("username")!)
            print(result.valueForKey("password")!)
        }
    }
} catch {
    print("取数据出错了")
}

六、可能出现的报错

在 Entity 增加了一个新的 Attribute,然后运行,就会出现错误。

原因是之前你存储的数据里没有刚刚新添加的 Attribute,所以报错了。

解决方法:

到模拟器里删除当前的 App,然后 Xcode 里菜单栏里 Product -> Clean。再运行就没有问题了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 引言 在这个教程中,你会看到在Xcode提供的初始化代码模板和数据模型编辑器资源中,用Swift语言写出你的第一个...
    MarkLin阅读 13,444评论 7 32
  • 适读对象: 需要入门Core Data的朋友; 像我一样,尚未学过数据库相关课程,不太懂怎么写SQLite语句的朋...
    AntonyWong阅读 10,829评论 8 21
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,126评论 6 342
  • 1 前言 CoreData不仅仅是数据库,而是苹果封装的一个更高级的数据持久化框架,SQLite只是其提供的一种数...
    RichardJieChen阅读 8,181评论 2 2
  • 我前一家任职公司的主管,台籍干部,薪资很不错,只是前几年也离开公司后前后在几家公司任职,都不如意,最近自己出来创业...
    NicoleQIu阅读 1,117评论 0 0

友情链接更多精彩内容