给人做网站多少钱网站空间企业个人

pingmian/2025/10/8 0:25:33/文章来源:
给人做网站多少钱,网站空间企业个人,重庆最近的新闻大事,百度seo搜索本文目录 一、简介二、模型文件三、了解NSManagedObject对象四、CoreData中的核心对象五、代码实现六、打开CoreData的SQL语句输出开关七、创建NSManagedObject的子类 回到顶部一、简介 Core Data是iOS5之后才出现的一个框架#xff0c;它提供了对象-关系映射(ORM)的功能… 本文目录 一、简介二、模型文件三、了解NSManagedObject对象四、CoreData中的核心对象五、代码实现六、打开CoreData的SQL语句输出开关七、创建NSManagedObject的子类 回到顶部 一、简介   Core Data是iOS5之后才出现的一个框架它提供了对象-关系映射(ORM)的功能即能够将OC对象转化成数据保存在SQLite数据库文件中也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间我们不需要编写任何SQL语句这个有点类似于著名的Hibernate持久化框架不过功能肯定是没有Hibernate强大的。简单地用下图描述下它的作用 左边是关系模型即数据库数据库里面有张person表person表里面有id、name、age三个字段而且有2条记录 右边是对象模型可以看到有2个OC对象 利用Core Data框架我们就可以轻松地将数据库里面的2条记录转换成2个OC对象也可以轻松地将2个OC对象保存到数据库中变成2条表记录而且不用写一条SQL语句。   回到顶部 二、模型文件   在Core Data需要进行映射的对象称为实体(entity)而且需要使用Core Data的模型文件来描述app中的所有实体和实体属性。这里以Person(人)和Card(身份证)2个实体为例子先看看实体属性和实体之间的关联关系 Person实体中有name姓名、age年龄、card身份证三个属性 Card实体中有no号码、person人两个属性 接下来看看创建模型文件的过程 1.选择模板    2.添加实体 3.添加Person的2个基本属性 4.添加Card的1个基本属性 5.建立Card和Person的关联关系          右图中的表示Card中有个Person类型的person属性目的就是建立Card跟Person之间的一对一关联关系(建议补上这一项)在Person中加上Inverse属性后你会发现Card中Inverse属性也自动补上了   回到顶部 三、了解NSManagedObject对象 1.通过Core Data从数据库取出的对象默认情况下都是NSManagedObject对象    2.NSManagedObject的工作模式有点类似于NSDictionary对象通过键-值对来存取所有的实体属性 1 setValue:forKey:存储属性值(属性名为key) 2 valueForKey:获取属性值(属性名为key) 回到顶部 四、CoreData中的核心对象 注黑色表示类名红色表示类里面的一个属性 开发步骤总结 1.初始化NSManagedObjectModel对象加载模型文件读取app中的所有实体信息 2.初始化NSPersistentStoreCoordinator对象添加持久化库(这里采取SQLite数据库) 3.初始化NSManagedObjectContext对象拿到这个上下文对象操作实体进行CRUD操作 回到顶部 五、代码实现 先添加CoreData.framework和导入主头文件CoreData/CoreData.h 1.搭建上下文环境 // 从应用程序包中加载模型文件   NSManagedObjectModel *model  [NSManagedObjectModel mergedModelFromBundles:nil];   // 传入模型对象初始化NSPersistentStoreCoordinator   NSPersistentStoreCoordinator *psc  [[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model] autorelease];   // 构建SQLite数据库文件的路径   NSString *docs  [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];   NSURL *url  [NSURL fileURLWithPath:[docs stringByAppendingPathComponent:person.data]];   // 添加持久化存储库这里使用SQLite作为存储库   NSError *error  nil;   NSPersistentStore *store  [psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:url options:nil error:error];   if (store  nil) { // 直接抛异常       [NSException raise:添加数据库错误 format:%, [error localizedDescription]];   }   // 初始化上下文设置persistentStoreCoordinator属性   NSManagedObjectContext *context  [[NSManagedObjectContext alloc] init];   context.persistentStoreCoordinator  psc;   // 用完之后记得要[context release];   2.添加数据到数据库 // 传入上下文创建一个Person实体对象   NSManagedObject *person  [NSEntityDescription insertNewObjectForEntityForName:Person inManagedObjectContext:context];   // 设置Person的简单属性   [person setValue:MJ forKey:name];   [person setValue:[NSNumber numberWithInt:27] forKey:age];   // 传入上下文创建一个Card实体对象   NSManagedObject *card  [NSEntityDescription insertNewObjectForEntityForName:Card inManagedObjectContext:context];   [card setValue:4414241933432 forKey:no];   // 设置Person和Card之间的关联关系   [person setValue:card forKey:card];   // 利用上下文对象将数据同步到持久化存储库   NSError *error  nil;   BOOL success  [context save:error];   if (!success) {       [NSException raise:访问数据库错误 format:%, [error localizedDescription]];   }   // 如果是想做更新操作只要在更改了实体对象的属性后调用[context save:error]就能将更改的数据同步到数据库   3.从数据库中查询数据 // 初始化一个查询请求   NSFetchRequest *request  [[[NSFetchRequest alloc] init] autorelease];   // 设置要查询的实体   request.entity  [NSEntityDescription entityForName:Person inManagedObjectContext:context];   // 设置排序按照age降序   NSSortDescriptor *sort  [NSSortDescriptor sortDescriptorWithKey:age ascending:NO];   request.sortDescriptors  [NSArray arrayWithObject:sort];   // 设置条件过滤(搜索name中包含字符串Itcast-1的记录注意设置条件过滤时数据库SQL语句中的%要用*来代替所以%Itcast-1%应该写成*Itcast-1*)   NSPredicate *predicate  [NSPredicate predicateWithFormat:name like %, *Itcast-1*];   request.predicate  predicate;   // 执行请求   NSError *error  nil;   NSArray *objs  [context executeFetchRequest:request error:error];   if (error) {       [NSException raise:查询错误 format:%, [error localizedDescription]];   }   // 遍历数据   for (NSManagedObject *obj in objs) {       NSLog(name%, [obj valueForKey:name]   }   注Core Data不会根据实体中的关联关系立即获取相应的关联对象比如通过Core Data取出Person实体时并不会立即查询相关联的Card实体当应用真的需要使用Card时才会再次查询数据库加载Card实体的信息。这 个就是Core Data的延迟加载机制 4.删除数据库中的数据 // 传入需要删除的实体对象   [context deleteObject:managedObject];   // 将结果同步到数据库   NSError *error  nil;   [context save:error];   if (error) {       [NSException raise:删除错误 format:%, [error localizedDescription]];   }     回到顶部 六、打开CoreData的SQL语句输出开关 1.打开Product点击EditScheme... 2.点击Arguments在ArgumentsPassed On Launch中添加2项 1 -com.apple.CoreData.SQLDebug 2 1    回到顶部 七、创建NSManagedObject的子类 默认情况下利用Core Data取出的实体都是NSManagedObject类型的能够利用键-值对来存取数据。但是一般情况下实体在存取数据的基础上有时还需要添加一些业务方法来完成一些其他任务那么就必须创建NSManagedObject的子类 选择模型文件  选择需要创建子类的实体  创建完毕后多了2个子类  文件内容展示 Person.h #import Foundation/Foundation.h   #import CoreData/CoreData.h      class Card;      interface Person : NSManagedObject      property (nonatomic, retain) NSString * name;   property (nonatomic, retain) NSNumber * age;   property (nonatomic, retain) Card *card;      end   Person.m #import Person.h      implementation Person      dynamic name;   dynamic age;   dynamic card;      end   Card.h #import Foundation/Foundation.h   #import CoreData/CoreData.h      class Person;      interface Card : NSManagedObject      property (nonatomic, retain) NSString * no;   property (nonatomic, retain) Person *person;      end   Card.m #import Card.h   #import Person.h      implementation Card      dynamic no;   dynamic person;      end   那么往数据库中添加数据的时候就应该写了 Person *person  [NSEntityDescription insertNewObjectForEntityForName:Person inManagedObjectContext:context];   person.name  MJ;   person.age  [NSNumber numberWithInt:27];      Card *card  [NSEntityDescription insertNewObjectForEntityForName:”Card inManagedObjectContext:context];   card.no  ”4414245465656;   person.card  card;   // 最后调用[context saveerror];保存数据   说到这里整个Core Data框架的入门就结束了其实Core Data还远不止这些功能它还支持自动撤销机制一对多关联等这里就不一一介绍了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89640.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

给上市公司做网站有什么用厦门做网站哪家公司好

Select语句的执行顺序 1、from 子句组装来自不同数据源的数据; 2、where 子句基于指定的条件对记录行进行筛选; 3、group by 子句将数据划分为多个分组; 4、使用聚集函数进行计算;AVG() SUM() MAX() MIN() COUNT() 5、使用 havin…

如何做网站数据库备份网上书店网页设计实训报告

目录 简介 1.拉取镜像 2.创建并启动容器 2.1创建目录 2.2启初始化一个容器用于导出配置文件和数据库,只挂载数据目录 2.3先将数据库文件和配置文件复制出来 2.4停止容器并删除容器 2.5创建完整的容器 3.愉快地使用 3.1示例: 3.2图片预览 3.3json…

电子商务与网站建设策划书甘肃省建筑工程建设监理公司网站

使用Sim control仿真自动驾驶 概述Sim control仿真自动驾驶启动DreamView仿真系统 实验目的福利活动 主页传送门:📀 传送 概述 自动驾驶汽车在实现落地应用前,需要经历大量的道路测试来验证算法的可行性和系统的稳定性,但道路测试…

网站开发如何引用函数电影网站怎么做优化

利用互联网实现小组合作,目前显然还有诸多不便,原因何在?许多人都在网上实现了互联,小组合作似乎应该有诸多便利。但为什么维护一个可供小组其他成员共享和编辑的文件夹依然困难重重?为什么如果大家不使用相同的即时通…

挂甲寺网站建设seo培训赚钱

概述 FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20用于进行数据传输,端口21用于接受客户端发出的相关FTP命令与参数。FTP服务器普遍部署于内网中,具有容易搭建、方…

台州市建设厅网站一家网站建设公司需要什么资质

文章目录 0 前言1 课题意义课题难点: 2 实现方法2.1 图像预处理2.2 字符分割2.3 字符识别部分实现代码 3 实现效果最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于机器视觉的火车票识别系统 该项目较为新颖,适合作为竞赛…

天津协会网站建设装修加盟网

什么是SSL/TLS协议? SSL(Secure Sockets Layer)和其继任者TLS(Transport Layer Security)是用于保护网络通信安全的协议。它们工作在应用层和传输层之间,为数据传输提供了安全性和隐私性。 SSL/TLS的作用&…

南通网站建设计划书通用技术作品设计方案

本作品介绍参与极术社区的有奖征集|分享研电赛作品扩大影响力,更有重磅电子产品免费领取! 获奖情况:三等奖 1.作品简介 针对药物发现过程中的药物筛选问题,本设计基于深度学习提出新的神经网络结构和数据处理方式用于预测蛋白质与化合物之…

校园网站建设的请示阿里云的wordpress如何设置密码

0x01 产品介绍: Palo Alto Networks Expedition 是一款强大的工具,帮助用户有效地迁移和优化网络安全策略,提升安全管理的效率和效果。它的自动化功能、策略分析和可视化报告使其在网络安全领域中成为一个重要的解决方案。 0x02 漏洞描述&am…

电子商务网站建设与维护致谢词如何创建问卷网站

JAVA基础知识 语法结构 1.类 2.属性 3.方法 4.静态代码块 构造器 构造函数,构造类的对象,默认隐式,创建对象,先执行父类构造函数,再执行子类构造函数 父类的super必须在第一行 代码块 优先级最高,只…

优化网站哪个好网站建设公司自适应源码

试卷代号:1377 理工英语3 参考试题 一、交际用语(共计10分,每小题2分) 1-5题:选择正确的语句完成下列对话,并将答案序号写在答题纸上。 1.-1 won the first prize in todays speech contest. - …

许昌做网站九零后个人电脑做网站服务器

【OpenCV 完整例程】77. OpenCV 实现快速傅里叶变换 欢迎关注 『OpenCV 完整例程 100 篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 傅里叶变换在理论上需要 O(MN)2O(MN)^2O(MN)2 次运算,非常耗时&#xff1…

昆明市建设厅网站集团公司网站案例

C语言 基础开发----目录 冒泡排序 1. 原理 对一个有n个数据的数组进行遍历,依次对相邻两个数据进行比较大小,若大的数据在前面则交换位置(升序),完成一次遍历后数组中最大的数据到了数组的末尾位置,就象水…

互联网网站建设案例写软文能赚钱吗

初始化仓库 git init 与远程仓库进行联接 git remote add origin (仓库复制下来的地址) 拉取远程仓库代码 #查看远程分支 git branch -r #查看本地分支 git branch #拉取远程分支,会产生映射关系 使用该方式会在本地新建分支x,并…

php网站开发个人简历视频网站软件有哪些

情境/背景: SAP系统未提供配置BOM解析功能,多个业务部长多次开会强调系统没有配置BOM查询功能,严重影响供应链物料管理。目标/任务: 实现SAP系统中配置BOM解析功能自开发定制程序行动/举措: 花费大量业余时间&#xff…

如何做微信商城网站建设中国著名的个人网站

文章目录 前言一、异常说明符1.1异常说明符是什么?1.2异常说明符的格式1.3异常说明符的优势 二、异常操作符2.1异常操作符是什么?2.2异常操作符的使用2.3优势 二、Lambda表达式2.1Lambda表达式是什么?2.2各个部分的意义2.3示例代码2.4优势 总…

公司网站建设要求如何做app推广运营

摘要: 办公用品管理系统是一个设计和实现办公用品库存和使用管理的信息系统。此系统可以提高办公用品的利用率,减少浪费,使办公用品管理更加高效、规范、便捷。本文主要介绍使用javaswingmysql技术去开发实现一个办公用品管理系统。 功能分…

苍梧网站建设asp网站后台制作

前言 在平时的开发中,我们经常使用 import()实现代码分割和懒加载。在低版本的浏览器中并不支持动态 import(),那 webpack 是如何实现 import() polyfill 的? 原理分析 我们先来看看下面的 demo function component() {const btn docume…

流水线 东莞网站建设苏州哪里有做淘宝网站的

输入整数m,n(m<n),输出[m,n]之间所有能被3,不能被4整除的所有数并求和,输出时每行显示5个数。 题干输入整数m,n(m<n),输出[m,n]之间所有能被3,不…

家用电脑如何做网站惠州招聘网

了解题意 在一个8x8的棋盘上放置8个皇后,使得任何两个皇后都不能处于同一行、同一列或同一斜线上。问有多少种方法可以放置这8个皇后? 解决这个问题的目标是找到所有符合要求的皇后摆放方式,通常使用回溯算法来求解。回溯算法会尝试所有可能…