美文网首页程序员
94课:初识 Core Data

94课:初识 Core Data

作者: sing_crystal | 来源:发表于2016-06-04 11:55 被阅读94次

    课程笔记文集地址: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。再运行就没有问题了。

    相关文章

      网友评论

        本文标题:94课:初识 Core Data

        本文链接:https://www.haomeiwen.com/subject/slhxdttx.html