swift语言IOS8开发战记23 Core Data4
来源:互联网 发布:小程序商城源码 编辑:程序博客网 时间:2024/05/29 16:19
这后面的部分痘子的视频已经不讲了,我自己看着英文书试着给大家讲的,书名叫《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 Foundationimport CoreDataclass 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了,我们把它清空。现在我们的程序中已经没有数据了,需要我们自己把数据添加到数据库中。
1 0
- swift语言IOS8开发战记23 Core Data4
- swift语言IOS8开发战记20 Core Data1
- swift语言IOS8开发战记21 Core Data2
- swift语言IOS8开发战记22 Core Data3
- Swift语言IOS8开发战记1.Button与Alert
- swift语言IOS8开发战记2.tableview
- swift语言IOS8开发战记3.tableViewCell
- swift语言IOS8开发战记4.custom tableViewCell
- swift语言IOS8开发战记6.Alert&ActionSheet
- Swift语言IOS8开发战记7.Delete TableViewCell
- Swift语言IOS8开发战记8.NavigationController
- Swift语言IOS8开发战记10.Data Model
- swift语言IOS8开发战记11 Set NavigationController
- swift语言IOS8开发战记12 Font Of Label
- swift语言IOS8开发战记13 Review Controller
- swift语言IOS8开发战记14 UIView Animation
- swift语言IOS8开发战记15 Animation Delay
- swift语言IOS8开发战记16 Protocol and Map
- 很不错的英文web网站,先收藏
- IOS开发之__bridge,__bridge_transfer和__bridge_retained
- 对云计算中几种基础设施(Dynamo,Bigtable,Map/Reduce等)的朴素看法
- C++学习笔记
- 深入理解Java8 lambda表达式
- swift语言IOS8开发战记23 Core Data4
- tortoiseSVN 进阶知识
- Matrix Chain Multiplication
- D3DXComputeBoundingSphere和D3DXComputeBoundingBox
- [vb6.0] 模拟鼠标操作, 一个自用多次单击类,可单击窗体或屏幕
- hdoj 1068 Girls and Boys
- 【Uni2D】Uni2DAssetPostprocessor
- Graph Algorithms
- HDOJ 1201 18岁生日