数据存储之CoreData

#import "ViewController.h"

#import <CoreData/CoreData.h>

#import "Person.h"

@interface ViewController ()

@end

@implementation ViewController

{

NSManagedObjectContext *_context;

}

- (void)viewDidLoad {

[super viewDidLoad];

//获取上下文

_context = [[NSManagedObjectContext alloc]init];

//添加model

NSManagedObjectModel *model = [NSManagedObjectModel mergedModelFromBundles:nil];

NSPersistentStoreCoordinator *store = [[NSPersistentStoreCoordinator alloc]initWithManagedObjectModel:model];

NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];

NSString *sqlitePath = [doc stringByAppendingString:@"/person.sqlite"];

// NSString *sqlitePath = [doc stringByAppendingPathExtension:@"person.sqlite"];

NSLog(@"%@",sqlitePath);

NSError *error = nil;

[store addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:[NSURL fileURLWithPath:sqlitePath] options:nil error:&error];

_context.persistentStoreCoordinator = store;

[self addPerson];

[self findPerson];

}

- (void)addPerson{

//创建对象

Person *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:_context];

person.name = @"hzt";

person.age = @"15";

person.phone = @"1314";

//保存数据

NSError *error = nil;

if ([_context save:&error]){

NSLog(@"保存成功");

}else{

NSLog(@"保存失败");

}

}

- (void)findPerson{

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name = %@",@"hzt"];

request.predicate = predicate;

NSError *error = nil;

NSArray *array = [_context executeFetchRequest:request error:&error];

for (Person *per in array){

NSLog(@"%@,%@",per.name,per.age);

}

}

------------------参考文献-------------------------------

http://www.jianshu.com/p/8299b7360dd6

时间: 2024-10-14 22:31:20

数据存储之CoreData的相关文章

iOS数据存储之CoreData

iOS中大量数据的储存一个是SqLite,另一个就是CoreData,CoreData允许程序员以面向对象的思维方式的方法去操作面向表的数据库 做过Java开发的对这个应该很熟悉,Java中的Hibernate跟CoreData就很相似 CoreData应该怎样使用呢? 第一步,新建工程后导入CoreData框架 第二部,创建CoreData的数据模型创建步骤如下 然后给你的model起个名字,创建完成后你会看到一个这个文件(相当于数据库文件) 点击这个文件,然后看下图 点击图中1,新建实体(类

IOS数据存储之CoreData使用

前言: 学习了Sqlite数据之后认真思考了一下,对于已经习惯使用orm数据的开发者或者对sql语句小白的开发者来说该如何做好数据库开发呢?这个上网搜了一下?看来总李多虑了!apple 提供了一种数据方式,它就是今天的主角:CoreData CoreData介绍: Core Date是ios3.0后引入的数据持久化解决方案,它是是苹果官方推荐使用的,不需要借助第三方框架.Core Date实际上是对SQLite的封装,提供了更高级的持久化方式.在对数据库操作时,不需要使用sql语句,也就意味着即

CoreData 本地数据存储

在iOS开发中,我们会用到本地数据文件的存储,一般有属性列表Plist,SQLite,CoreDate以及沙盒文件等方式,现在归纳一下CoreData. CoreData是苹果iOS 5后提供的本地文件存储框架,利用CoreData可以方便创建关系映射,进行数据CRUD(增删改查)操作. <注意>使用CoreData处理数据务必先引入CoreData框架包:CoreData.framework: 1.创建CoreData文件的两种方式 (a).在使用CoreData时我们需要进行CoreDat

[Xcode10 实际操作]七、文件与数据-(14)数据持久化存储框架CoreData的使用:删除CoreData中的数据

本文将演示如何删除数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 1 import UIKit 2 //引入数据持久化存储框架[CoreData] 3 import CoreData 4 5 class ViewController: UIViewController { 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 // Do any additional setup a

iOS数据存储的几种方式

iOS的数据存储是iOS应用开发的重要知识点: 关于这方面知识,网上有很多介绍,但对于代码层次的使用方式并未有系统全面介绍.此文章针对iOS稍熟悉的童鞋,需要对CoreData的原理有一定的了解.目前存储方式大概有以下几种: NSKeyedArchiver  适用简单数据加密 NSUserDefaults  适用配置参数 Write  文件操作,同NSKeyedArchiver SQLite3  操作较复杂,不建议使用. CoreData  取代SQLite3,但要遵循NSManagedObje

IOS的四种数据存储方式及优劣

IOS有四种经常使用数据存储方式: 第一种方法:用NSUserDefaults存储配置信息 NSUserDefaults被设计用来存储设备和应用的配置信息.它通过一个工厂方法返回默认的.也是最经常使用到的实例对象. 这个对象中储存了系统中用户的配置信息,开发人员能够通过这个实例对象对这些已有的信息进行改动.也能够依照自己的需求创建新的配置项. 他实际上是存储于文件沙盒中的一个.plist文件,而且没有被系统加密,仅仅是ios6以后不是存于经常使用的文档文件夹下,所以不破解系统是看不到该文件的.所

iOS中的数据存储

SQLite3 SQLite3是一款开源的嵌入式关系型数据库,可移植性好,易使用,内存开销小. SQLite3是无类型的,意味着你可以保存任何类型的数据到任意表的任意字段中. SQLite3常用的4种数据类型:text(文本字符串), integer(整型值), real(浮点值), blob(二进制数据(比如文件)). 在iOS中使用SQLite3,首先要添加库文件'libsqlite3.dylib'和导入主头文件#import<sqlite3.h> SQL语句的特点: 1> 不区分大

ios开发之数据存储

iOS应用数据存储的常用方式 XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3 Core Data 应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是应用的文件夹),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer) 模拟器应用沙盒的根路径在: (apple是用户名, 6.0是模拟器版本)/Users/apple/Li

iOS技术面试04:数据存储

如果后期需要增加数据库中的字段怎么实现,如果不使用CoreData呢? 编写SQL语句来操作原来表中的字段 1> 增加表字段 ALTER TABLE 表名 ADD COLUMN 字段名 字段类型; 2> 删除表字段 ALTER TABLE 表名 DROP COLUMN 字段名; 3> 修改表字段 ALTER TABLE 表名 RENAME COLUMN 旧字段名 TO 新字段名; SQLite数据存储是怎么用? 1> 添加SQLite动态库: 2> 导入主头文件:#impor