CoreData相关02 基础和运用删除、修改、模糊查询
删除条目
2022-03-04 16:27:23.552477 0800 CoreData实践1[72820:3059276] personName:personSomeone5009 age:0
系统想要将这些age = 0 的条目删掉。
其基本的操作是:
找到 age = 0 的条目
删除这些条目
用上下文保存
- (void)deleteSomeoneAge:(int64_t)age{
//创建请求对象(填入的是表名称)
NSFetchRequest* request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
//创建过滤器
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"age=0"];
request.predicate = predicate;
//创建一个error用于接收错误,如果有错误的话。
NSError* error = nil;
//创建一个数组用于接收查询到的数据对象
NSArray* resultArray = [self.context executeFetchRequest:request error:&error];
if (error) {
NSLog(@"查询失败,错误信息:%@",error);
}else{
NSLog(@"查询结果如下");
for (Person* person in resultArray) {
NSLog(@"personName:%@ age:%zd",person.name,person.age);
//删除
[self.context deleteObject:person];
}
//遍历删除完后,保存一下上下文
//所有的操作都是在内存中的,最后我们需要提交到数据库更新一下
[self.context save:&error];
if(error){
NSLog(@"数据删除保存失败,失败信息:%@",error);
}else{
NSLog(@"数据删除保存完成");
}
}
}
运行结果:
2022-03-04 16:47:03.009790 0800 CoreData实践1[73184:3074793] 查询结果如下
2022-03-04 16:47:03.010098 0800 CoreData实践1[73184:3074793] personName:personSomeone5009 age:0
2022-03-04 16:47:03.014724 0800 CoreData实践1[73184:3074793] 数据删除保存完成
修改数据
- (void)updatePersonWithName:(NSString*)name changeAge:(int64_t)age{
//创建请求对象(填入的是表名称)
NSFetchRequest* request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
//创建过滤器
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"name=%@",name];
request.predicate = predicate;
//创建一个error用于接收错误,如果有错误的话。
NSError* error = nil;
//创建一个数组用于接收查询到的数据对象
NSArray* resultArray = [self.context executeFetchRequest:request error:&error];
if (error) {
NSLog(@"查询失败,错误信息:%@",error);
}else{
NSLog(@"查询结果如下");
for (Person* person in resultArray) {
NSLog(@"personName:%@ age:%lld",person.name,person.age);
//所有的操作都是在内存中的,最后我们需要提交到数据库更新一下
person.age = 18;
[self.context save:&error];
if(error){
NSLog(@"数据修改失败,失败信息:%@",error);
}else{
NSLog(@"数据修改完成:%@-%lld",person.name,person.age);
}
}
}
}
运行结果:
2022-03-04 17:45:32.081605 0800 CoreData实践1[74137:3113654] 查询结果如下
2022-03-04 17:45:32.082136 0800 CoreData实践1[74137:3113654] personName:personSomeone8011 age:92
2022-03-04 17:45:32.087725 0800 CoreData实践1[74137:3113654] 数据修改完成:personSomeone8011-18
2022-03-04 17:45:32.088342 0800 CoreData实践1[74137:3113654] 查询结果如下
2022-03-04 17:45:32.088495 0800 CoreData实践1[74137:3113654] personName:personSomeone8011 age:18
模糊查询
模糊查询有很多中方式,其中:
BEGINSWITH 是开头相似
ENDWITH 是结尾相似
CONTAINSWITH 是中间相似
like * 通配符方式,*后面接匹配的字符
[self fuzzyQueryDataWithNameString:@"personSomeone80"];
- (void)fuzzyQueryDataWithNameString:(NSString*)info{
//创建请求对象(填入的是表名称)
NSFetchRequest* request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
//创建过滤器
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"name BEGINSWITH %@",info];
request.predicate = predicate;
//创建一个error用于接收错误,如果有错误的话。
NSError* error = nil;
//创建一个数组用于接收查询到的数据对象
NSArray* resultArray = [self.context executeFetchRequest:request error:&error];
if (error) {
NSLog(@"查询失败,错误信息:%@",error);
}else{
NSLog(@"查询结果如下");
if (resultArray.count) {
for (Person* person in resultArray) {
NSLog(@"personName:%@ age:%lld",person.name,person.age);
}
}else{
NSLog(@"无");
}
}
}
运行结果:
2022-03-04 18:01:04.186396 0800 CoreData实践1[74453:3127878] 查询结果如下
2022-03-04 18:01:04.186900 0800 CoreData实践1[74453:3127878] personName:personSomeone8011 age:18
2022-03-04 18:01:04.187305 0800 CoreData实践1[74453:3127878] personName:personSomeone8030 age:24
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgcbcbh
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01