iOS学习之CoreData模糊查找,分页查找,多模型文件处理
来源:互联网 发布:英汉同声翻译软件 编辑:程序博客网 时间:2024/05/22 12:28
坚持 成长 每日一篇
模糊查找
CoreData在抓取数据库对象时候,我们可以创建NSPredicate对象来给NSFetchRequest设置过滤条件,以达到我们想要的结果。下面介绍几种模糊查找的使用情况
1.使用BEGINSWITH查找以固定开头的数据
NSPredicate *pre = [NSPredicate predicateWithFormat:@"name BEGINSWITH %@",@"wang"]; request.predicate = pre;
2.使用ENDSWITH查找固定结尾的数据
NSPredicate *pre = [NSPredicate predicateWithFormat:@"name ENDSWITH %@",@"1"];request.predicate = pre;
3.使用CONTAINS查找包含固定内容的数据
NSPredicate *pre = [NSPredicate predicateWithFormat:@"name CONTAINS %@",@"wu"];request.predicate = pre;
4.使用通配符*查找,这里相当于查找以wu12结尾的数据
NSPredicate *pre = [NSPredicate predicateWithFormat:@"name like %@",@"*wu12"];request.predicate = pre;
分页查询
当我们通过NSFetchRequest查找很多条数据结果时候,我们可以通过设置NSFetchRequest的属性来实现分页显示数据
// 分页的起始索引 request.fetchOffset = 0; // 分页的条数 request.fetchLimit = 6;
注意:上面的数字0表示我们已经完成过滤,排序后的数据的第1条开始抓取数据,数字6表示抓取6条数据
多模型文件处理
在一个工程里,我们会用到多个xcdatamodeld格式的模型文件,对于这种情况我们一般的处理是对每一个模型文件创建一个数据库,一个数据库对于一个上下文。
如下方法可以根据不同模型文件名创建不同的数据库并返回一个与该数据库关联的上下文。
-(NSManagedObjectContext *)setupContextWithModelName:(NSString *)modelName{ // modelName为模型文件名 // 使用下面的方法,如果 bundles为nil 会把bundles里面的所有模型文件的表放在一个数据库 //NSManagedObjectModel *model = [NSManagedObjectModel mergedModelFromBundles:nil]; NSLog(@"%@",[[NSBundle mainBundle] bundlePath]); //模型文件加载到bundle以后是以momd格式的文件存在 NSURL *companyURL = [[NSBundle mainBundle] URLForResource:modelName withExtension:@"momd"]; NSManagedObjectModel *model = [[NSManagedObjectModel alloc] initWithContentsOfURL:companyURL]; // 持久化存储调度器 // 持久化,把数据保存到一个文件,而不是内存 NSPersistentStoreCoordinator *store = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model]; // 告诉Coredata数据库的名字和路径 NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; //根据不同的模型名,创建不同的数据库 NSString *sqliteName = [NSString stringWithFormat:@"%@.sqlite",modelName]; NSString *sqlitePath = [doc stringByAppendingPathComponent:sqliteName]; NSLog(@"%@",sqlitePath); [store addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:[NSURL fileURLWithPath:sqlitePath] options:nil error:nil]; // 上下文 NSManagedObjectContext *context = [[NSManagedObjectContext alloc] init]; // 上下文关连数据库 context.persistentStoreCoordinator = store; return context;}
0 0
- iOS学习之CoreData模糊查找,分页查找,多模型文件处理
- linux模糊查找文件
- IOS字符串模糊查找算法
- linux命令模糊查找文件
- JAVA学习之文件查找
- 模糊查找
- 模糊查找
- 模糊查找
- 模糊查找
- iOS Realm文件查找
- linux如何模糊查找一个文件
- XMPP框架 微信项目开发之CoreData学习——CoreData的查询方式(模糊查询,嵌套查询,分页查询)
- Objective-C学习笔记-之文件查找
- hibernate使用LIKE进行模糊查找,并实现分页
- 分页查找
- Linux学习---文件查找
- Linux 之文件查找
- iOS学习之CoreData多表关联使用
- 一些前台密码验证JS
- Node.js HelloWord Linux(Ubuntu)
- 日经春秋 20150829
- 设计模式(一):单例模式
- hdu 5402 Travelling Salesman Problem
- iOS学习之CoreData模糊查找,分页查找,多模型文件处理
- 手势
- 日经社説 20150829 課題残る新競技場の整備計画
- linux命令(2):gzip命令
- 重载引用参数(c++ primer plus -6th)
- [C#]增强响应性,用加载窗体(Splash)来载入主窗体
- typeof constructor instanceof 判断类型
- 日经社説 20150829 農家のための農協へ抜本改革を着実に
- CString与char*转换(Unicode和多字节字符集)