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:


94课:初识 Core Data_第1张图片

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

94课:初识 Core Data_第2张图片

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

94课:初识 Core Data_第3张图片

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

二、设置类文件

在类的开发引入 CoreData:

import CoreData

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

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

三、写入 Entity

如下图:


94课:初识 Core Data_第4张图片

四、存储数据

// 首先找到对应的 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。再运行就没有问题了。

你可能感兴趣的:(94课:初识 Core Data)