数据持久化(五)之CoreData

深度学习基本概念 1.深度学习基本概念 1.1 张量 我们在学习线性代数的时候,学习过向量和矩阵。对于张量从数学和物理方面讲解就篇幅过长。我们可以简单的理解张量(Tensor)为向量以及矩阵的扩展。向量可以理解为一维张量,矩阵可以理解为二维张量。对于更高阶的可以以深度学习里常要处理的图片来举例。彩色图片有(RGB)三个通道,可以看作一个三维张量即H*W*C,(H为高度,w为宽带,c是通道数目)。在深度学习里常使用四维的张量,NCHW或NHWC两种其中N为批次的大小。 在深度学习的网络构造过程中,会遇到各种各样的线性变换,这 阅读详情

@简单的说,Core Data就是可以存储到磁盘的对象图,[...]Core Data可以帮我们做很多任务作.它可以作为软件的整个模型层。它不仅仅在磁盘上存储数据,也把我们需要的数据对象读取到内存中。

                                                                                                                              ——Marcus Zarra, Core Data

@Core Data是Mac OS X中Cocoa API的一部分,首次在Mac OS X 10.4 Tiger与iOS 3.0系统中出现[2]。它允许按照实体-属性-值模型组织数据,并以XML,二进制文件或SQLite数据文件的格式将其串行化。Core Data允许用户使用代表实体和实体间关系的高层对象来操作数据。它也可以管理串行化的数据,提供对象生存期管理与object graph管理,包括存储。Core Data直接与SQLite交互,避免开发者使用原本的SQL语句,就像Cocoa绑定在模型-视图-控制器设计中做了很多控制器的工作一样,Core Data做了很多数据模型的工作。它的主要任务是负责数据更改的管理,串行化到磁盘,最小化内存占用,以及查询数据。

@http://www.cocoachina.com/iphonedev/sdk/2010/1126/2397.html( 这是官方对于CoreData的说明)

@接下来,我就不利用框架自动生成代码,完全自己编写所有的 Core data 相关代码的命令行应用程序来深入讲解 Core data的使用。

*概念图*


@添加CoreData框架,导入#import<CoreData/CoreData.h>

写代码之前需要了解6个对象:

(1)NSManagedObjectContext(被管理的数据上下文)

操作实际内容(操作持久层)

作用:插入数据,查询数据,删除数据

(2)NSManagedObjectModel(被管理的数据模型)

数据库所有表格或数据结构,包含各实体的定义信息

作用:添加实体的属性,建立属性之间的关系

操作方法:视图编辑器,或代码

(3)NSPersistentStoreCoordinator(持久化存储助理)

相当于数据库的连接器

作用:设置数据存储的名字,位置,存储方式,和存储时机

(4)NSManagedObject(被管理的数据记录)

相当于数据库中的表格记录

(5)NSFetchRequest(获取数据的请求)

相当于查询语句

(6)NSEntityDescription(实体结构)

相当于表格结构

(7)后缀为.xcdatamodeld的包

里面是.xcdatamodel文件,用数据模型编辑器编辑

编译后为.momd或.mom文件


1.自定义封装的CoreData管理类HMTCoreDataManager

.h

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #import <Foundation/Foundation.h>  
  2. #import <CoreData/CoreData.h>  
  3.   
  4. /** 
  5.  *   数据存储成功的代码块 
  6.  */  
  7. typedef void(^HandleSaveSuccessedBlock)();  
  8.   
  9. /** 
  10.  *   数据存储失败的代码块 
  11.  */  
  12. typedef void(^HandleSaveFailedBlock)(NSError *);  
  13.   
  14.   
  15. @interface HMTCoreDataManager : NSObject  
  16.   
  17. @property (nonatomic,strong)NSManagedObjectContext *managedObjectContext;  //  托管对象上下文  
  18.   
  19. /** 
  20.  *  创建一个单例对象 
  21.  * 
  22.  *  @return 单例对象 
  23.  */  
  24. + (HMTCoreDataManager *)defaultManager;  
  25.   
  26. /** 
  27.  *  根据实体描述获得托管对象 
  28.  * 
  29.  *  @param entityName  指定实体描述名字 
  30.  *  @param aClass      要获取的托管对象 
  31.  * 
  32.  *  @return  托管对象实例 
  33.  */  
  34.   
  35. - (NSManagedObject *)managedObjectWithEntityName:(NSString *)entityName managedObjectClass:(Class)aClass;  
  36.   
  37. /** 
  38.  *  数据存储到磁盘中成功和失败响应的方法,参数为2个block 
  39.  * 
  40.  *  @param aSuccessedHandler 
  41.  *  @param aFailedHandler     
  42.  */  
  43. - (void)saveWithSuccessedHandler:(HandleSaveSuccessedBlock)aSuccessedHandler failedHandler:(HandleSaveFailedBlock)aFailedHandler;  
  44.   
  45.   
  46. //  插入数据  
  47. - (void)insertCoreData;  
  48.   
  49.   
  50. //  查询  
  51. - (NSMutableArray*)selectData:(NSString *)name;  
  52.   
  53.   
  54. //  删除  
  55. - (void)deleteData:(NSManagedObject *)object;  
  56.   
  57.   
  58. //  更新  
  59. - (void)updateData:(NSString* )newName;  
  60.   
  61. @end  
.m

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #import "HMTCoreDataManager.h"  
  2.   
  3. @interface HMTCoreDataManager ()  
  4.   
  5. @property (nonatomic,strong) NSPersistentStoreCoordinator *persistentStoreCoordinator;  //  持久化存储协调器  
  6. @property (nonatomic,strong) NSManagedObjectModel * managedObjectModel;  //  托管对象模型  
  7.   
  8.   
  9. @end  
  10.   
  11. @implementation HMTCoreDataManager  
  12.   
  13. static HMTCoreDataManager *manager = nil;  
  14. + (HMTCoreDataManager *)defaultManager{  
  15.   
  16.     @synchronized(self){  
  17.       
  18.         if (manager == nil) {  
  19.             manager = [[HMTCoreDataManager alloc] init];  
  20.         }  
  21.     }  
  22.   
  23. /* 
  24.     //  通过GCD创建 
  25.     static dispatch_once_t onceToken; 
  26.     dispatch_once(&onceToken,^{ 
  27.      
  28.         manager = [[HMTCoreDataManager alloc] init]; 
  29.          
  30.     }); 
  31. */  
  32.     return manager;  
  33. }  
  34.   
  35. #pragma mark - 属性的方便之处能在get方法中初始化  
  36. /** 
  37.  *  很多人对于这个上下文不太理解,开始我也不太理解,查了很多资料,感觉下面这个解释比较通俗易懂 
  38.  *  托管对象上下文: 
  39.  *  托管对象上下文包含所有的托管对象,这些托管对象已经为提交给数据库准备就绪,在托管对象上下文中,可以添加、修改和删除托管对象, 
  40.  *  这一层相当于应用程序和数据库之间的缓冲区。 
  41.  */  
  42. - (NSManagedObjectContext *)managedObjectContext{  
  43.   
  44.     if (_managedObjectContext) {  
  45.         return _managedObjectContext;  
  46.     }  
  47.   
  48.     _managedObjectContext = [[NSManagedObjectContext alloc] init];  
  49.       
  50.     //  为托管对象上下文指定一个持久化存储协调器  
  51.     [_managedObjectContext setPersistentStoreCoordinator:self.persistentStoreCoordinator];  
  52.       
  53.     return _managedObjectContext;  
  54. }  
  55.   
  56. /** 
  57.  *  持久化存储协调器(持久化存储助理) 
  58.  *  持久化存储协调器处理到数据存储的连接,并且包含一些底层信息,像用到数据存储的名字和位置 
  59.  *  一般我们无需与它直接打交道,上下文已经封装了对它的调用 
  60.  */  
  61. - (NSPersistentStoreCoordinator *)persistentStoreCoordinator{  
  62.   
  63.     if (_persistentStoreCoordinator) {  
  64.         return _persistentStoreCoordinator;  
  65.     }  
  66.     //  初始化一个持久化存储协调器必须依赖NSManagedObjectModel  
  67.     _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:self.managedObjectModel];  
  68.       
  69.     //  存储路径(返回的是NSURL类型)为Documents目录下,以及数据库名称  
  70.     NSURL *documentURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];  
  71.     NSURL *fileURL = [documentURL URLByAppendingPathComponent:@"myClass.sqlite"];  
  72.       
  73.     NSError *error = nil;  
  74.     //  加载持久化存储数据(指定持久化存储的数据类型,默认的是NSSQLiteStoreType,即SQLite数据库)  
  75.     [_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:fileURL options:nil error:&error];  
  76.     if (error != nil) {  
  77.           
  78.         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"添加持久化存储失败" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil nil];  
  79.         [alert show];  
  80.     }  
  81.   
  82.     return _persistentStoreCoordinator;  
  83. }  
  84.   
  85. /** 
  86.  *  托管对象模型 
  87.  *  数据库所有表格或数据结构包含各实体的定义信息 
  88.  *  添加实体的属性,建立属性之间的关系 
  89.  */  
  90. - (NSManagedObjectModel *)managedObjectModel{  
  91.   
  92.     if (_managedObjectModel) {  
  93.         return _managedObjectModel;  
  94.     }  
  95.       
  96.     //  获取托管对象模型文件的地址  
  97.     //  编译器会自动将"xcdatamodeld"格式转化为"momd"  
  98.     NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"myClassModel" withExtension:@"momd"];  
  99.     _managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];  
  100.       
  101.     return _managedObjectModel;  
  102. }  
  103.   
  104. - (NSManagedObject *)managedObjectWithEntityName:(NSString *)entityName managedObjectClass:(Class)aClass{  
  105.   
  106.     //  创建"HMTClass"的实体描述  
  107.     NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"HMTClassEntity" inManagedObjectContext:self.managedObjectContext];  
  108.       
  109.     //  通过"HMTClass"的实体描述创建HMTClass的托管对象  
  110.     NSManagedObject *managedObject = [[aClass alloc] initWithEntity:entityDescription insertIntoManagedObjectContext:self.managedObjectContext];  
  111.       
  112.     return managedObject;  
  113. }  
  114.   
  115. - (void)saveWithSuccessedHandler:(HandleSaveSuccessedBlock)aSuccessedHandler failedHandler:(HandleSaveFailedBlock)aFailedHandler{  
  116.   
  117.     NSError *error = nil;  
  118.     [self.managedObjectContext save:&error];  
  119.     if (error != nil) {  
  120.       
  121.         aFailedHandler(error);  
  122.           
  123.     }else {  
  124.       
  125.         aSuccessedHandler();  
  126.     }  
  127.   
  128. }  
  129.   
  130. @end  


2.创建模型文件 ManagedObject的过程





3.将创建的模型文件转化为对应的类文件

第一种:command+n


第二种: 选中myClassModel.xcdatamodeld

之后都是一样的--->选中模型文件--->选中要创建的实体


最后,就会生成前面图片中的3个类,都是继承了NSManagedObject

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. ------------------class-------------------------------  
  2. @class HMTStudent, HMTTeacher;  
  3. @interface HMTClass : NSManagedObject  
  4.   
  5. @property (nonatomic, retain) NSString * name;  
  6. @property (nonatomic, retain) NSSet *students;  
  7. @property (nonatomic, retain) HMTTeacher *teacher;  
  8. @end  
  9.   
  10. @interface HMTClass (CoreDataGeneratedAccessors)  
  11.   
  12. - (void)addStudentsObject:(HMTStudent *)value;  
  13. - (void)removeStudentsObject:(HMTStudent *)value;  
  14. - (void)addStudents:(NSSet *)values;  
  15. - (void)removeStudents:(NSSet *)values;  
  16.   
  17. @end  
  18.   
  19. #import "HMTClass.h"  
  20. #import "HMTStudent.h"  
  21. #import "HMTTeacher.h"  
  22.   
  23. @implementation HMTClass  
  24.   
  25. @dynamic name;  
  26. @dynamic students;  
  27. @dynamic teacher;  
  28.   
  29. @end  
  30.   
  31. ------------------teacher-------------------------------  
  32. @class HMTClass;  
  33. @interface HMTTeacher : NSManagedObject  
  34.   
  35. @property (nonatomic, retain) NSString * name;  
  36. @property (nonatomic, retain) NSString * course;  
  37. @property (nonatomic, retain) HMTClass *myClass;  
  38.   
  39. @end  
  40.   
  41. #import "HMTTeacher.h"  
  42. #import "HMTClass.h"  
  43.   
  44. @implementation HMTTeacher  
  45.   
  46. @dynamic name;  
  47. @dynamic course;  
  48. @dynamic myClass;  
  49.   
  50. @end  
  51.   
  52. ------------------student-------------------------------  
  53. @class HMTClass, HMTTeacher;  
  54. @interface HMTStudent : NSManagedObject  
  55.   
  56. @property (nonatomic, retain) NSString * name;  
  57. @property (nonatomic, retain) NSNumber * age;  
  58. @property (nonatomic, retain) HMTTeacher *teacher;  
  59. @property (nonatomic, retain) HMTClass *myClass;  
  60.   
  61. @end  
  62.   
  63. #import "HMTStudent.h"  
  64. #import "HMTClass.h"  
  65. #import "HMTTeacher.h"  
  66.   
  67.   
  68. @implementation HMTStudent  
  69.   
  70. @dynamic name;  
  71. @dynamic age;  
  72. @dynamic teacher;  
  73. @dynamic myClass;  
  74.   
  75. @end  

4.准备工作都OK了,最后进行数据的持久化存储

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #pragma mark - 增删改查  
  2.   
  3. //  插入数据操作(类似于FMDB做法,方法后面可带你想存储的数据对象,这里只是单纯的演示)  
  4. //   - (void)insertCoreData:(AppleClass *)appleClass  
  5. - (void)insertCoreData{  
  6.   
  7.     //  创建"HMTClass"的实体描述,传入的正是前面标注的实体描述名  
  8.     NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"HMTClassEntity" inManagedObjectContext:self.managedObjectContext];  
  9.       
  10.     //  通过"HMTClass"的实体描述创建HMTClass的托管对象  
  11.     HMTClass *hmtClass = [[HMTClass alloc] initWithEntity:entityDescription insertIntoManagedObjectContext:self.managedObjectContext];  
  12.     //  hmtClass.name = appleClass.name;  
  13.     hmtClass.name = @"Apple";  
  14.       
  15.     //  托管对象上下文将托管对象的更改保存到磁盘文件中  
  16.     //  - save  将数据保存到数据库  
  17.     NSError *error = nil;  
  18.     [self.managedObjectContext save:&error];  
  19.     if (error != nil) {  
  20.         NSLog(@"添加失败:%@",[error localizedDescription]);  
  21.     }  
  22.   
  23. }  
  24.   
  25. //  删除数据操作  
  26. - (void)deleteData:(NSManagedObject *)object{  
  27.   
  28.     [self.managedObjectContext deleteObject:object];  
  29.     NSError *error = nil;  
  30.     [[HMTCoreDataManager defaultManager].managedObjectContext save:&error];  
  31.     if (error != nil) {  
  32.         NSLog(@"删除失败:%@",[error localizedDescription]);  
  33.     }  
  34.   
  35. }  
  36.   
  37. //  查询数据操作(依据特定条件查询,如果是select * 就直接不写谓词判断语句)  
  38. - (NSMutableArray*)selectData:(NSString *)name{  
  39.   
  40.     //  创建指定Entity的查询语句  
  41.     NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"HMTClassEntity"];  
  42.       
  43.     //  谓词,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取(我blog中OC分类有具体讲到)  
  44.     NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"name == \'%@\'",name],nil];  
  45.     fetchRequest.predicate = predicate;  
  46.       
  47.     //  查询的结果按哪个key进行排序,YES为升序  
  48. //    NSSortDescriptor *timestampSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"classNO" ascending:YES];  
  49. //    fetchRequest.sortDescriptors = @[timestampSortDescriptor];  
  50.       
  51.     //  注意查询返回的只能是NSArray类型  
  52.     NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:nil];  
  53.     NSMutableArray *resultArray = [NSMutableArray arrayWithArray:fetchedObjects];  
  54.   
  55.     return resultArray;  
  56. }  
  57.   
  58. //  更新数据操作  
  59. - (void)updateData:(NSString *)newName{  
  60.   
  61.     //  创建指定Entity的查询语句  
  62.     NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"HMTClassEntity"];  
  63.       
  64.     //  注意查询返回的只能是NSArray类型  
  65.     NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:nil];  
  66.   
  67.     //  更新  
  68.     for (HMTClass *info in fetchedObjects) {  
  69.         info.name = newName;  
  70.     }  
  71.       
  72.     //保存  
  73.     if ([self.managedObjectContext save:nil]) {  
  74.         //更新成功  
  75.         NSLog(@"更新成功");  
  76.     }  
  77.   
  78. }  

@转载请注明:http://blog.youkuaiyun.com/hmt20130412  谢谢!


@不错的CoreData资料:

    http://blog.youkuaiyun.com/rhljiayou/article/details/18037729

    http://blog.youkuaiyun.com/kesalin/article/details/6739319

    http://www.cnblogs.com/mybkn/articles/2472881.html

iOS 持久化存储之CoreData VS 直接SQlite 原创Blog,转载请注明出处 blog.youkuaiyun.com/hello_hwc 欢迎关注我的iOS SDK详解专栏 http://blog.youkuaiyun.com/column/details/huangwenchen-ios-sdk.html前言: CoreData不是DB,也不是DBMS,它是一个对象图管理工具,它的底层存储使用SQLite,XML或者其它。通常使用CoreData的时候,也会用到 阅读详情

相关推荐

iOS数据持久化设计探讨(NSCache,PINCache,YYCache,CoreData,FMDB,WCDB,Realm)

一、目标 了解移动端的数据持久化方式和对应的使用场景,提供相关技术选型做技术储备。 二、数据持久化的目的 快速展示,提升体验 已经加载过的数据,用户下次查看时,不需要再次从网络(磁盘)加载,直接展示给用户 节省用户流量(节省服务器资源) 对于较大的资源数据进行缓存,下次展示无需下载消耗流量 同时降低了服务器的访问次数,节约服务器资源。(图片) 离线使用。 用户浏览过的数据无需联网,...

wentianen的博客 2133

Cor

@简单的说,Core Data就是可以存储到磁盘的对象图,[...]Core Data可以帮我们做很多任务作.它可以作为软件的整个模型层。它不仅仅在磁盘上存储数据,也把我们需要的数据对象读取到内存中。                                                                                                

121

iOS 数据持久化之CoreData(三)NSFetchedResultsController +Demo

原创Blog,转载请注明出处 blog.youkuaiyun.com/hello_hwc 欢饮关注我的iOS SDK详解专栏 http://blog.youkuaiyun.com/column/details/huangwenchen-ios-sdk.html前言NSFetchedResultsController提供了CoreData与TableView的纽带。通常使用它查询的结果作为tableview的主列表。它

Leo的专栏 3653

死锁案例 二

一 前言 死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA都会在工作过程中遇见。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助。本文源于我们的生产案例:并发申请gap锁导致的死锁案例,与之前的 死锁案例一不同,本案例是因为RR模式下两个事务中的sql可以获取同一个gap锁,导致对方事务的insert 相互等待,导致死锁的。二 案例分析 2.1测试环境准备 Percona server 5.6.24 事务隔离级别为RR CREATE TABLE `t...

谢谢你,慌乱了我的年华 196

RS485 MODBUS转PROFINET网关案例丨汇川变频器接入到1200 PROFINET

本案例介绍的是用北京小疆智控(北京)技术有限公司生产的GW-PN5003型MODBUS RTU转PROFINET网关将汇川变频器接入西门子PLC1200 PROFINET网络的使用方法。

bjxjzk的博客 1879

Tesla V100 Windows 部署实战:从驱动安装到模式切换的避坑指南

本文是一份详细的Tesla V100在Windows系统下的部署实战指南。文章从硬件组装、系统选择讲起,重点阐述了驱动安装的正确方法,并深入剖析了将计算卡从TCC模式切换至WDDM模式的诱惑与潜在陷阱。最终,作者推荐保持默认TCC模式,并提供了使用nvidia-smi命令行等稳定可靠的显卡监控方案,旨在帮助用户避开常见坑点,高效利用这张专业计算卡进行AI计算等任务。

java5的博客 1706

iOS-CoreData使用

1.创建文件 1-1.新建可视化的dataModel 新建文件 -> core data -> Data Model -> .xcdatamodeld (格式) 在.xcdatamodeld可视化界面,Add Entity 创建实体。 实体,就是跟数据库进行映射的对象。 NSManagedObject — 对应数据库中的一条记录。 2-2.新建NSManagedObject 选...

samuelandkevin的专栏 967

GMSL2摄像头接入避坑指南:从FMC子卡配置到V4L2调用的完整流程(附Ubuntu20.04实测)

本文详细解析了GMSL2摄像头接入的全流程,从FMC子卡配置到V4L2调用的完整指南。基于XC7Z100平台实测经验,提供了硬件选型、带宽优化、Linux驱动配置及高分辨率采集的实战技巧,帮助开发者规避常见问题,提升系统稳定性与性能。

weixin_33737774的博客 418

CoreData-基本数据操作(增删改查)

所有操作都基于Core Data框架相关 API,工程需要添加CoreData.framework支持 1.增  NSEntityDescription insertNewObjectForEntityForName: inManagedObjectContext: 利用NSEntityDescription工厂方法创建Entity 1 2 3

ivolcano的博客 2522

别再死记公式了!用HFSS/CST手把手教你仿真一个2.4GHz WiFi的PIFA天线(附参数调试技巧)

本文详细介绍了使用HFSS和CST仿真软件设计2.4GHz WiFi PIFA天线的全流程,包括建模准备、分步操作指南和参数调试技巧。通过可视化结果和实战案例,帮助工程师快速掌握天线设计的关键参数优化方法,提升辐射性能和工作效率。

weixin_31682031的博客 333

【机器学习与数据挖掘实战 | 医疗】案例18:基于Apriori算法的中医证型关联规则分析

本案例针对三阴乳腺癌患者,经问卷调查收集数据并筛选处理形成原数据,经清洗、特征选择与变换后,构建Apriori模型,基于业务理解与建模结果,分析患者症状与中医证型关联,并据症状给出建议 。

Morse_Chen的博客 1380

iOS XML JSON SQLite CoreData 数据持久化

iOSXMLJSONSQLiteCoreData 一、文件操作      1、因为应用是在沙盒(Sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件:           * Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录           * tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应

LDM 1468

AUTOSAR从入门到精通-中间件通信DDS(一)

汽车开放系统架构(automotive open system architecture,autosar)是由全球各大汽车oem、零部件供应商、汽车电子软件公司联合建立的一套标准协议。该协议规范了一个符合汽车电子软件开发的、开放的以及标准化的软件架构。最初的autosar规范的制定只考虑传统汽车电子电器架构,基于硬件算力有限场景,提供确定的功能。

getusushu的博客 1869

iOS ---- 高级数据持久化CoreData

一 CoreData数据库框架的历史 CoreData数据持久化框架是Cocoa API的一部’,首次在iOS3.0版本的系统中出现,它允许按照实体 — 属性 — 值模型组织数据, 并以XML,二进制文件或者SQLite数据文件的格式持久化数据. 二 CoreData数据库框架的常用类 实体管理类: NSManagedObject 实体描述类: NSEntityDescription

Going@Hanna.Never give up 1409

物联网Node-Red开发教程-第6章 HTTP与Web服务

本章摘要(147字): 本章系统讲解了Node-RED中的HTTP节点应用,重点包括: 三大核心HTTP节点功能:http in(接收请求)、http response(返回响应)、http request(调用外部API) 详细演示了REST API开发流程,包括路径参数(req.params)处理和响应构造 提供了创建Hello World API、传感器数据接口等实用示例 涵盖HTTP方法特性、状态码设置及响应头配置等关键知识点 通过流程图和JSON配置直观展示节点连接方式,帮助快速掌握Web服务开发

shihui2003的博客 264

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

iPhone开发【二十六】数据持久化总结之第5篇—CoreData技术

转载请注明出处,原文网址:http://blog.youkuaiyun.com/m_changgong/article/details/8435094 作者:张燕广 实现的功能:1)演示使用CoreData持久化数据(仅显示基本操作,不包括很多复杂的操作)。 关键词:数据持久化 CoreData 1、新建一空工程,命名为:Persistence_CoreData: 2、选中“Use C

长弓的专栏 7950

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

CoreData进行数据持久化存储

一、CoreData简介 1、CoreData是IOS5后出现的一个数据持久化存储框架,它提供了对象-关系映射(ORM)的功能,即能够将对象转化成数据,也能够将保存在数据库中的数据还原成对象。 2、虽然底层也是类似SQL的技术实现,但是不需要编写任何的SQL语句,有点像java中的hibernate持久化框架 3、CoreData数据的最终存储类型可以是SQLite数据库,XML,二

PGAndroid的博客 484

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

DebugSwift CoreData浏览器:iOS数据持久化调试终极指南 [特殊字符]

**DebugSwift CoreData浏览器**是iOS开发者调试数据持久化的终极工具!如果你正在开发iOS应用并且使用CoreData进行数据存储,那么这个调试神器将彻底改变你的调试体验。DebugSwift是一个强大的iOS应用程序调试工具包,而其中的CoreData浏览器功能特别针对数据持久化调试,让你能够实时查看、编辑和管理CoreData数据库内容。 ## 📊 为什么需要Core

gitblog_00936的博客 695

AssetStudio Unity 资源提取完整指南:5 分钟把 assetbundle 导出成 FBX

AssetStudio 是一款面向 .assetbundle 的 Unity 资源提取工具,能把包里的 Mesh、Texture2D、AudioClip、Font 解码并导出为 FBX、PNG、WAV。本文从载入资源包一路走到导出到磁盘,覆盖导出选项配置、依赖检查与排障自查表,读完你即可独立完成一次 AssetStudio 导出并批量处理资产。 ## 用 AssetStudio 省掉三类重复劳动

gitblog_00258的博客 401

3分钟完成首次艾尔登法环存档编辑:ER-Save-Editor完全指南

ER-Save-Editor 是一款开源的艾尔登法环存档编辑器,同时兼容 PC 与 PlayStation 存档。你可以用图形界面调整角色属性、批量添加装备、管理进度标志,适合想自定义角色 build 的玩家,也适合想学习存档二进制格式的开发者。 ## 什么人需要它 - **想自定义 build 的玩家**:不用在游戏里反复刷,直接把想要的武器、防具、护符加进存档。 - **PS 玩家**:把

gitblog_00504的博客 619

iOS 数据持久化之CoreData(一)堆栈与基本概念

原创Blog,转载请注明出处 blog.youkuaiyun.com/hello_hwc 我的iOS SDK详解专栏,这里你能找到很多iOS 开发入门的文章。 http://blog.youkuaiyun.com/column/details/huangwenchen-ios-sdk.html前言:CoreData是对象图管理和数据持久化的一个良好的工具,是iOS开发必须掌握的技术之一。本文会先介绍一些概念,方便以后

Leo的专栏 3705

iOS 通过CoreData实现数据持久化

iOS 通过CoreData实现数据持久化引言: Core Data 是 iOS 3.0 以后引入的数据持久化解决方案,其原理是对 SQLite 的封装,是开发者不需要接触 SQL 语句,就可以对数据库进行的操作. 其编码方式和原理结构方面较为特殊,本博文主要介绍在使用 Core Data 时遇到的各种问题以及对其核心原理进行解释. 参考资料: 1: iOS 教程:Co

zhaoguodongios的专栏 876
上一篇: ios7毛玻璃效果实现
下一篇: iOS开发中,应用内直接跳转到Appstore
SMY_API
博客等级 码龄13年 5粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值