Core Data 基本数据操作 增删改查 排序
2015-08-13 00:32
447 查看
所有操作都基于Core Data框架相关 API,工程需要添加CoreData.framework支持
1.增 NSEntityDescription insertNewObjectForEntityForName: inManagedObjectContext:
利用NSEntityDescription工厂方法创建Entity
2.删 context deleteObject:
3.改 略
4.查
4.1查找全部context executeFetchRequest: error:
5.排序[NSSortDescriptor sortDescriptorWithKey:], [request setSortDescriptors:]
1.增 NSEntityDescription insertNewObjectForEntityForName: inManagedObjectContext:
利用NSEntityDescription工厂方法创建Entity
AppDelegate *appDelegate = [UIApplication sharedApplication].delegate; //get NSManagedObjectContext NSManagedObjectContext *context = [appDelegate managedObjectContext]; NSManagedObject *managedObject = nil; managedObject = [NSEntityDescription insertNewObjectForEntityForName:youEntityName inManagedObjectContext:context];//youEntityName is a NSString [managedObject setValue:youKeyValue forKey: youEntityKeyName];//KVO方式赋值value - key //e.g. [managedObject setValue:[name descrition] forKey: @"kEntityKeyName"], the entity must include name property, and its name must be "kEntityKeyName" [appDelegate saveContext];//Don't forget to save the changes
2.删 context deleteObject:
NSManagedObject * deleteObject = youWillDeleteObject;//Can get the object from the query result , which is a NSArray getting by the way of using NSFetchRequest /*e.g. NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:kEntityName]; NSError *error; NSArray *objects = [context executeFetchRequest:request error:&error]; //choose one object or many objects */ AppDelegate *delegate = [UIApplication sharedApplication].delegate; NSManagedObjectContext *context = [delegate managedObjectContext]; [context deleteObject:deleteObject];//从NSManagedObjectContext中删除指定对象 [delegate saveContext];//保存修改
3.改 略
4.查
4.1查找全部context executeFetchRequest: error:
NSMutableArray *_array;//声明存储数据的数组 AppDelegate *appDelegate = [UIApplication sharedApplication].delegate; NSManagedObjectContext *context = [appDelegate managedObjectContext]; NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:kEntityName]; NSError *error; NSArray *objects = [context executeFetchRequest:request error:&error]; if (objects == nil) { NSLog(@"There is an error!"); }else{ _array = [NSMutableArray arrayWithArray:objects]; }
5.排序[NSSortDescriptor sortDescriptorWithKey:], [request setSortDescriptors:]
AppDelegate *appDelegate = [UIApplication sharedApplication].delegate; NSManagedObjectContext *context = [appDelegate managedObjectContext]; NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:kEntityName];//查找请求 //创建排序描述器 : 按创建时间属性列(Entity设计时添加此列@"createTime"(date类型))进行增序排序 NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:kCreateTime ascending:YES]; //设置查找请求的排序描述器 [request setSortDescriptors:[NSArray arrayWithObject:sort]]; //利用Coredata api在数据库中查 NSError *error; NSArray *objects = [context executeFetchRequest:request error:&error];
相关文章推荐
- Unity3D之AssetBundle【4】简易AssetBundle打包、加载demo
- Spring+mybatis+struts框架整合的配置详解
- HDU 4277 USACO ORZ(暴力+双向枚举)
- Codeforces Gym 100425H H - Football Bets 构造
- Access-Control-Allow-Origin与跨域
- LeetCode——Palindrome Linked List
- 图论-BFS解无权有向图最短路径距离
- Android笔记(十) Android中的布局——表格布局
- Unity3D之AssetBundle【3】AssetBundle资源加载管理器
- C++函数调用的完美灾难
- PLSQLDeveloper中文显示乱码的解决方法
- 推荐几个实用的Android工具类
- Service 里面注册BroadcastReceiver onReceiver为响应
- 双拖动条自定义seekbar(带浮动textView)
- Elastic Search 相关度计算
- Android4.4 往短信收件箱中插入自定义短信(伪造短信)
- sql server 2008 不允许保存更改,您所做的更改要求删除并重新创建以下表 的解决办法
- C# verload,overwrite,override
- ConditionalWeakTable<TKey, TValue>使编译器可以将对象字段动态附加到托管对象。
- Java并发编程实战笔记(一):线程安全性