swift语言IOS8开发战记23 Core Data4

简介:     这后面的部分痘子的视频已经不讲了,我自己看着英文书试着给大家讲的,书名叫《Beginning IOS8 Programming with Swift》,感兴趣的同学自己搜一下哈。

    这后面的部分痘子的视频已经不讲了,我自己看着英文书试着给大家讲的,书名叫《Beginning IOS8 Programming with Swift》,感兴趣的同学自己搜一下哈。上一话中我们讲解了coredadta的用法,那么如何把coredata用到我们的工程中么,可以把上一话中的代码粘贴到我们工程的AppDelegate中,基本这套代码是通用的,注意有两句要修改一下,一句是:

let modelURL = NSBundle.mainBundle().URLForResource("tableView", withExtension: "momd")!

    还有一句是

et url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("tableView.sqlite")

   我的工程名是tableView(原谅我LOW了一点),所以做了以上修改,其他不变,都是从我们新建的那个coredata工程中复制过来的,代码复制完后记得加上:

import CoreData

   这个是coredata的头文件,现在关于使用coredata的所有准备工作都做好了,我们开始创建我们需要的模型吧。我们之前已经介绍过了,如图:



    在生成的中,新建一个Rest实体跟我们工程中的Rest类对应起来,如图,直接点击+增加就好了。

     

      大家可能会奇怪为什么image的类型是Binary Data,其实是因为按照之前的做法我们的图片都放在APP中,所以我们使用图片的时候在UIImage这个类中直接用图片的名字就能找到,如果用户从相机中导入了新的照片的话,我们不能再用这个办法,所以我们需要把图片存到数据库中,而使用Binary Data就是这个目的。接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:

import Foundation
import CoreData


class Rest:NSManagedObject {
    
    @NSManaged var name:String!
    @NSManaged var type:String!
    @NSManaged var location:String!
    @NSManaged var image:NSData!
    @NSManaged var isVisit:NSNumber!
    
}
        关键字@NSManaged的作用是与实体中对应的属性通信,Binary Data对应的类型是NSData,Core Data没有布尔属性,只能用0 和 1来区分。当你把类做了修改之后,那么建立类和实体之间的映射吧。进行如下操作,输入类名:

        建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。首先你现在不能再用文件名来加载图片。图片现在时data对象,之前的代码如下:

cgImageView?.image = UIImage(named: newRest.image)

  修改如下:

cgImageView?.image = UIImage(data: newRest.image)

      第二个错误是isVisit属性,这个属性不再是布尔类型了,之前的代码:

let here = rest!.isVisit ? "Yes,I'm here" : "No"

  修改为:

            let here = rest!.isVisit.boolValue ? "Yes" : "No"

我们需要获取它的布尔值

    第三个错误是我们现在不能使用之前的DataArray了,我们把它清空。现在我们的程序中已经没有数据了,需要我们自己把数据添加到数据库中。



目录
相关文章
|
机器学习/深度学习 TensorFlow Swift
Swift语言适合多个领域的开发
Swift语言适合多个领域的开发
443 9
|
安全 编译器 Swift
Swift开发
Swift开发
448 9
|
12月前
|
API Swift iOS开发
回顾Apple Swift语言的发展和版本演变历程
归纳起来,Swift的发展过程就像一个乡村孩子的成长故事,从一个不谙世事的孩子,通过不懈的学习和实践,让自身的潜力得到最大的发挥,最终成为了社会中有实力的一份子。而这个故事还在继续,让我们共同期待Swift未来的激动人心的篇章!
286 20
|
监控 安全 Swift
企业上网行为管理软件:Swift 语言在移动终端监控的拓展
在数字化时代,企业对员工移动终端的上网行为管理日益重视。Swift 语言在移动终端监控中展现出独特优势,包括网络状态监测、应用使用跟踪及网页浏览行为监控等功能,有效助力企业确保信息安全和提高工作效率。
283 6
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
620 2
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
516 2
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
1481 2
|
Unix 调度 Swift
苹果iOS新手开发之Swift 中获取时间戳有哪些方式?
在Swift中获取时间戳有四种常见方式:1) 使用`Date`对象获取秒级或毫秒级时间戳;2) 通过`CFAbsoluteTimeGetCurrent`获取Core Foundation的秒数,需转换为Unix时间戳;3) 使用`DispatchTime.now()`获取纳秒级精度的调度时间点;4) `ProcessInfo`提供设备启动后的秒数,不表示绝对时间。不同方法适用于不同的精度和场景需求。
1188 3
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
【10月更文挑战第18天】本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户按下按钮时,按钮将从圆形变为椭圆形并从蓝色渐变为绿色;释放按钮时,动画恢复原状。通过UIView的动画方法和弹簧动画效果,实现平滑自然的动画过渡。
324 5
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户点击按钮时,按钮将从圆形变为椭圆形,颜色从蓝色渐变到绿色;释放按钮时,动画以相反方式恢复。通过UIView的动画方法和弹簧动画效果,实现平滑自然的过渡。
376 1

相关课程

更多