首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
飞猴阿新
iOS开发
发布于北京
关注
已关注
取消关注
@小生好怕怕:
CoreData的基本操作
Managed Object Model(被管理对象模型): –数据库的轮廓,或者结构。包含了各个实体的定义信息 Persistent Store Coordinator (持久性数据协调器): – 数据库连接库,在这里设置数据存储的名字和位置,以及数据存储的时机 Managed Object Context (被管理对象上下文): –数据的实际内容,基本上,插入数据,查询数据,删除数据的工作都在这里完成 写模块是怎样运作的呢? 1,应用程序先创建或读取模型文件(后缀为xcdatamodeld)生成 NSManagedObjectModel 对象。Document应用程序是一般是通过 NSDocument 或其子类 NSPersistentDocument)从模型文件(后缀为 xcdatamodeld)读取。 2,然后生成 NSManagedObjectContext 和 NSPersistentStoreCoordinator 对象,前者对用户透明地调用后者对数据文件进行读写。 3,NSPersistentStoreCoordinator 负责从数据文件(xml, sqlite,二进制文件等)中读取数据生成 Managed Object,或保存 Managed Object 写入数据文件。 4,NSManagedObjectContext 参与对数据进行各种操作的整个过程,它持有 Managed Object。我们通过它来监测 Managed Object。监测数据对象有两个作用:支持 undo/redo 以及数据绑定。这个类是最常被用到的。 5,Array Controller, Object Controller, Tree Controller 这些控制器一般与 NSManagedObjectContext 关联,因此我们可以通过它们在 nib 中可视化地操作数据对象。 如果希望看到内部是如何执行的,可以打开调试功能: 在运行控制中,选择Arguments选项,在Arguments Password On Launch中添加以下命令: -com.apple.CoreData.SQLDebug 1 使用CoreData创建实体 1._2_CoreData.xcdatamodeld中选择"Add Entity”. 添加实体Person,,为Person添加属性, 2.创建实体对象 Person *person = [NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass([Person class]) inManagedObjectContext:self.managedObjectContext]; person.name = @"Tom"; person.age = [NSNumber numberWithInt:22]; person.gender = @'M'; 3.保存实体的方法 [self saveContext]; 4.查询实体对象 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:NSStringFromClass([Person class])]; 5.设置request属性 //定义查询条件 // [request setPredicate:<#(NSPredicate *)#>];//设置谓词对象,相当于where子句 //定义排序对象(设置依靠哪个字段进行排序,例如:以姓名,性别为例) NSSortDescriptor *ageSort = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];//yes升序,no降序 NSSortDescriptor *genderSort = [NSSortDescriptor sortDescriptorWithKey:@"gender" ascending:YES]; //在排序过程中,首先以年龄为主关键字,如果年龄相同,则已性别为排序字段。 [request setSortDescriptors:@[ageSort,genderSort]]; //执行查询 NSError *error = nil; NSArray *persons = [self.managedObjectContext executeFetchRequest:request error:&error]; if (!error) { [persons enumerateObjectsUsingBlock:^(Person *person, NSUInteger idx, BOOL *stop) { NSLog(@"name:%@,age:%@,gender:%c",person.name,person.age,(char)[person.gender integerValue]); }]; } 在CoreData中删除对象实体的方法: //取出CoreData中的数据 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:NSStringFromClass([Book class])]; NSError *error = nil; NSArray *fetchedResult = [self.managedObjectContent executeFetchRequest:request error:&error]; 如果通过TableView对数据进行删除操作,步骤如下: 1.在CoreData中进行删除数据,然后进行保存 [self.managedObjectContent deleteObject:book]; NSError *error = nil; [self.managedObjectContent save:&error]; if (error) { NSLog(@"删除失败"); } 2.在保存数据源的数组中进行删除对象 [self.books removeObject:book]; 3.局部刷新单元格 [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
点赞 0
评论 0
全部评论
推荐
最新
楼层
秋招专场
校招火热招聘中
官网直投
相关推荐
ChrisLu1108
昨天 19:16
已编辑
Java
华为OD面经 Base东莞(Java)
先介绍下本人基本情况:非目标院校,双非一本,二战考研失利gap一年,无工作、实习经验(debuff加满)2024.05.10 机考D卷,2 easy+1 mid,两个半小时。按照现在的风评,非目标估计要350才好说话一点。重点考察范围:字符串处理、dfs、dp、二分查找、二叉树相关...(具体可以看一下CSDN的题库,但是里面的答案仅供参考,有些都不一定是AC的题解)做机考之前建议把牛客的华为机试100来道题过一遍,太简单的可以跳,重点把握字符串的各种处理方法、搜索、动态规划以及一些经典例题解法。此外,leetcode和CSDN题库也可以作为参考,有几率碰原题。但是碰到原题也要按照自己...
查看3道真题和解析
点赞
评论
收藏
转发
许愿ssp的大老虎很勇敢
05-30 08:05
四川外国语大学 外国语言文学类
杭州银行总行暑期实习体验
前中后台的具体工作内容都不一样,但框架性的要求是一样的。看过暑期实习生培养要求,hr建议导师给实习生安排(能体验综合能力)的课题制工作,比如,布置一项课题或者安排一个小项目,少安排事务性的工作。实习的实际工作时间在21天-30天左右,时间比较短,所以工作不会太多,大概参与1-2个课题制工作,再协助导师完成一些日常工作。即使是同部门,工作可能也不一样。因为不同的导师风格不同,有的会把实习生当正式员工用,安排的工作可能相对多一点。有的导师可能对实习生比较放任,那工作就少一点。whatever,实习体验很不错,部门氛围很好。
投递杭州银行等公司7个岗位 >
点赞
评论
收藏
转发
OfferNotFoundExpection
05-24 15:06
哈尔滨理工大学 计算机类
来自小厂实习的面评
小厂实习面试,面得时候三个人,一个hr,一个技术面试官,还有一个貌似是领导。领导真是什么都问啊,甚至问到了我学校‘必修’的选修课上的大创项目,让我给她介绍介绍,我是真滴难绷,我一个混子连项目名都不知道怎么跟他说😋(小组用舍友上一届大创的项目,一稿多用,主打一手互相糊弄),还有问我大学三年都干嘛了,为什么选择这个方向还有一些稀奇古怪的问题。我真的想给她两拳😡。
点赞
评论
收藏
转发
qrna
04-15 11:06
腾讯_csig_机器学习算法研究(实习员工)
轮到我写感谢信了
经过多平台投票调研,以及和多位朋友深入讨论,最终决定放弃百度的offer,全身心拥抱鹅厂
点赞
评论
收藏
转发
LINK333
05-30 15:07
西安电子科技大学 计算机类
为什么一些程序员很傲慢?
程序员其实有很多刻板印象,比如闷骚、无趣、情商低,格子衫……但傲慢绝不在此列。给大家讲个故事,大三时班上来了几个专升本插班生。其中一个是文科专业转计算机的(也别对文科有刻板印象,hhh),编程基础为零,连电脑都用不利索。见我每天上课都坐第一排,从不旷课,就开始套近乎。主动加微信,一有机会就坐我旁边,放学都要跟我道别,很是热情。从各种专业软件的安装,到具体的代码调试,我都不厌其烦地帮他解决过。更离谱的是,他连要不要上课,在哪上都问过我。彼时我学的游戏开发,期末考试有一门课要上机实操当场交卷。要求自己用已有资源搭建场景并编写游戏功能,这毫无疑问难倒了平时只会抄作业的他。因为时间有限,就在我争分夺秒...
点赞
评论
收藏
转发
点赞
收藏
评论
分享
回复帖子
提到的真题
返回内容
全站热榜
1
...
给你们预测一下今年的秋招!
3353
2
...
阿里体检完还没发正式offer
2504
3
...
【🎁】25届硬件牛牛互助计划(1期)
2393
4
...
5.31拼多多服务端开发实习生一面(75min)
2283
5
...
海康暑期实习
2244
6
...
深圳蟑螂真的很可怕吗
2197
7
...
毕业了!
1985
8
...
拿了蓝桥杯c++b组国二,水平怎么样,找后端开发工作有多大优势?
1850
9
...
momenta 实习 C++ 一面
1730
10
...
海康威视,25暑期实习,软件开发岗
1674
正在热议
#
和牛牛一起刷题打卡
#
14039次浏览
1291人参与
#
通信硬件薪资爆料
#
256368次浏览
2412人参与
#
不去互联网可以去金融科技
#
4515次浏览
60人参与
#
牛客帮帮团来啦!有问必答
#
1094414次浏览
16334人参与
#
面试被问第一学历差时该怎么回答
#
18313次浏览
199人参与
#
简历中的项目经历要怎么写?
#
14347次浏览
191人参与
#
工作两年想退休了
#
19339次浏览
241人参与
#
简历中的项目经历要怎么写
#
482497次浏览
8784人参与
#
实习生应该准时下班吗
#
93395次浏览
706人参与
#
你收到了团子的OC了吗
#
530964次浏览
6298人参与
#
简历无回复,你会继续海投还是优化再投?
#
23500次浏览
329人参与
#
你已经投递多少份简历了
#
338708次浏览
4905人参与
#
你怎么评价今年的春招?
#
12504次浏览
193人参与
#
晒一晒我的offer
#
3772660次浏览
58084人参与
#
我的上岸简历长这样
#
202873次浏览
4119人参与
#
担心入职之后被发现很菜怎么办
#
39652次浏览
328人参与
#
本周投递记录
#
221107次浏览
5381人参与
#
我想象的工作vs实际工作
#
105806次浏览
1700人参与
#
硬件人的简历怎么写
#
81841次浏览
849人参与
#
产品人求职现状
#
56872次浏览
823人参与
#
工作压力大怎么缓解
#
12628次浏览
176人参与
牛客网
牛客企业服务