ios coredata 老代码备用参考
iPhone OS在2009年6月份推出3.0版本SDK,其中一个特性是引入了Mac SDK中的core data。是一种ORM(Object Relationships Mapping)解决方案,类似java的Hibernate。
有了这个,就不必像ios简单sqlite使用那样编写繁琐代码了,减少工作量,也可以回避使用c的语法,降低ios开发的技术门槛。总之,可降低开发成本,提高项目质量。
本文在很大程度上参考了《Core Data Tutorial for iOS》。
创建ios项目
为了方便,直接用xcode工具向导创建项目,这样可以自动集成core data的支持。
![]()
不一定创建window-based项目,split view-based也可以,用于ipad项目,或者对于iphone的navigation-based项目亦可。
创建实体
比如java里的实例需要编写java类和对应的mapping文件(也可能是注解)。在ios里,需要两步:
- 图形界面的设计工具,设计实体、实体属性和实体的关系
- 生成实体的类,也就是对应的.h和.m文件
创建的项目比如叫aaa,那么找到aaa.xcdatamodel:
![]()
双击它,可调出模型编辑器。创建一个Person实体。
![]()
点击上图的加号创建一个新的实体(entity),然后在entity的文本框中填写实体名称。回车就可以看到下面类似uml类图的图形名称变为Person。
然后创建属性:
![]()
点击属性部分的加号,选择Add Attribute,增加一个id,数字的:
![]()
然后,设置为自增列:
![]()
再设置个name属性:
![]()
如果有多个实体,继续创建,或者创建它们之间的关系。
然后,生成实体类,供编写程序时调用。
创建新文件,注意要在实体编辑器界面,可以选中Person实体,这样生成的文件名就是Person:
![]()
选择 managed object class:
![]()
然后:
![]()
然后选中需要的实体,finish:
![]()
在项目中生成了实体类:
![]()
在代码中使用实体
首先,需要在使用Person实例类的代码头文件中加入:
#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
#import "Person.h"
使用core data的简单代码,创建一个Person实体实例,保存它,然后遍历数据,相当于:select * from persons:
NSLog(@">>start app ");
Person *person=(Person *)[NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:[self managedObjectContext]];
person.name=@"张三";NSError *error;
if (![[self managedObjectContext] save:&error]) {
NSLog(@"error!");
}else {
NSLog(@"save person ok.");
}NSFetchRequest *request=[[NSFetchRequest alloc] init];
NSEntityDescription *entity=[NSEntityDescription entityForName:@"Person" inManagedObjectContext:[self managedObjectContext]];
[request setEntity:entity];
ios coredata 老代码备用参考的更多相关文章
- iOS实现地图半翻页效果--老代码备用参考
// Curl the image up or down CATransition *animation = [CATransition animation]; [animation setDurat ...
- CATransition的动画效果类型及实现方法--老代码备用参考
实现iphone漂亮的动画效果主要有两种方法,一种是UIView层面的,一种是使用CATransition进行更低层次的控制, 第一种是UIView,UIView方式可能在低层也是使用CATransi ...
- iOS 支付宝应用(备用参考2)
接入前期准备工作包括商户签约和密钥配置 步骤1: 启动IDE(如Xcode),把iOS包中的压缩文件中以下文件拷贝到项目文件夹下, 并导入到项目工程中. AlipaySDK.bundle Al ...
- iOS 支付宝应用(备用参考)
1:先与支付宝签约,获得商户ID(partner)和账号ID(seller) 2:下载相应的公钥私钥文件(加密签名用) 3:下载支付宝SDK 4:生成订单信息5:调用支付宝客户端,由支付宝客户端跟支付 ...
- iOS CoreData (一) 增删改查
代码地址如下:http://www.demodashi.com/demo/11041.html Core Data是iOS5之后才出现的一个框架,本质上是对SQLite的一个封装,它提供了对象-关系映 ...
- iOS CoreData 介绍和使用(以及一些注意事项)
iOS CoreData介绍和使用(以及一些注意事项) 最近花了一点时间整理了一下CoreData,对于经常使用SQLite的我来说,用这个真的有点用不惯,个人觉得实在是没发现什么亮点,不喜勿喷啊.不 ...
- iOS CoreData介绍和使用(以及一些注意事项)
iOS CoreData介绍和使用(以及一些注意事项) 最近花了一点时间整理了一下CoreData,对于经常使用SQLite的我来说,用这个真的有点用不惯,个人觉得实在是没发现什么亮点,不喜勿喷啊.不 ...
- iOS CoreData技术学习资源汇总
一.CoreData学习指引 1. 苹果官方:Core Data Programming Guide 什么是CoreData? 创建托管对象模型 初始化Core Data堆栈 提取对象 创建和修改自定 ...
- IOS CoreData 多表查询demo解析
在IOS CoreData中,多表查询上相对来说,没有SQL直观,但CoreData的功能还是可以完成相关操作的. 下面使用CoreData进行关系数据库的表与表之间的关系演示.生成CoreData和 ...
随机推荐
- c/c++编译原理
转载自:http://blog.csdn.net/chengocean/article/details/6250779C源程序-->预编译处理(.c)-->编译.优化程序(.s..asm) ...
- web项目设计与开发——DBHelper3
本次学习的内容为根据DBHelper对数据库里的数据进行增删改查 具体内容为: 一.编写程序 1.创建工程——Mangage 2.在src目录下创建五个包,分别为DAO,DBHelper,Ent ...
- 百度地图SDK下载以及创建应用(申请Key)和本地导入Demo
一.百度地图SDK下载 http://lbsyun.baidu.com/sdk/download?selected=location 选择全部,然后分别下载开发包.示例代码.类参考. 二.创建应用(申 ...
- 将Word、Excel内容显示在Winform界面
这里使用到dsoframer.ocx插件 1. 首先下载dsoframer.ocx插件,下载地址: http://pan.baidu.com/s/1kTKHeIj 2. 注册该插件 Win7的做法是按 ...
- MD5、拼音检索和邮件发送
MD5算法 MD5算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法(易错) l 为了防止用户偷懒,算两次MD5值,或者加上一个固定的字符串 MD5算法理论上是不可逆的,因此攻击 ...
- Vimtutor练习心得
A. 光标定位(482) ctr + g 显示光标当前所在的行数 shift + g(G) 光标移动到文档末尾 gg 移动到文档首行 数字 + G ...
- 转:Unity3D的四种坐标系
World Space(世界坐标):我们在场景中添加物体(如:Cube),他们都是以世界坐标显示在场景中的.transform.position可以获得该位置坐标. Screen Space(屏幕坐标 ...
- Android之Http网络编程(四)
前面几篇博文简单的介绍了一些常见的Http的操作,这些操作几乎都是在新开的线程中进行的网络请求,并在日志中打印出获取到的网络数据.那么,问题来了!(呃~感觉下一句是蓝翔有木有?)如何在把获取到的网络数 ...
- cl: cannot open file 'kernel32.lib'
在测试 jni时, 使用 cl命令, 如 cl -I xx\jdk1.7.0_17\include -I xx\jdk1.7.0_17\include\win32 -LD HelloNative.c ...
- 使用SQLdiag Utility搜集SQL Server诊断信息
SQLdiag Utility用于搜集诊断信息,给Microsoft技术支持人员做为判断依据. 使用SQLdiag 会进行信息搜集类型 Windows 系统性能日志 Windows 系统日志 SQL ...