iOS:Core Data 中的简单ORM

简介:

前2天在微博看到刘鑫等人对Android和iOS上数据库存储的ORM(对象关系映射,即把数据库映射到对象)的讨论。自己项目中需要存储的数据大多比较简单,所以无论是Android还是iOS都没有使用ORM的相关东西。其实Core Data的一大特性就是对ORM的处理。

我们首先在xcdatamodel文件中设计我们的数据库:例如我建立一个Data的实体,里面有一个String类型的属性name以及一个Integer类型的num:

 

然后选中Data,添加文件,选择NSManagedObject subclass类型:

xcode就会自动帮我们的数据库自动映射出对象了,生成Data.h  Data.m文件,Data为 NSManagedObject派生的子类,

复制代码
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>


@interface Data : NSManagedObject

@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSNumber * num;

@end
复制代码
复制代码
#import "Data.h"


@implementation Data

@dynamic name;
@dynamic num;

@end
复制代码

我们在需要用到存储CoreData的地方,直接使用Data对象就行,当然,你需要import Data.h 先,例如我demo的代码:

复制代码
-(void) saveDataWithName:(NSString *) Name andNum:(int ) Num{
    AppDelegate *appDelegate=[[UIApplication sharedApplication] delegate];
    NSManagedObjectContext *context = appDelegate.managedObjectContext;
    //save Data
    Data *data = [NSEntityDescription insertNewObjectForEntityForName:@"Data" inManagedObjectContext:context];
    data.name = Name;
    data.num = [NSNumber numberWithInt:Num];
    [appDelegate saveContext];
    
    
    //get Data 
    NSError *error;
    NSFetchRequest *request=[[NSFetchRequest alloc] init];
    NSEntityDescription *entity=[NSEntityDescription entityForName:@"Data" inManagedObjectContext:context];
    [request setEntity:entity];
    
    NSArray *results=[[context executeFetchRequest:request error:&error] copy];
    
    for (Data *d in results) {
        NSLog(@">> date.name: %@ data.num: %i",d.name,[d.num intValue]);
    }
}
复制代码

 

其实之前的做法(iphone开发中的数据存储:Core Data)是直接使用NSManagedObject对象去存取,现在则把它映射到对应对象里面,当然在数据库复杂的时候,其好处会体现出来。

简单的ORM in iOS就是这些。

 

参照:http://marshal.easymorse.com/archives/3377

 本文转自老Zhan博客园博客,原文链接:http://www.cnblogs.com/mybkn/archive/2013/05/24/3097034.html,如需转载请自行联系原作者


相关文章
|
7月前
|
算法 计算机视觉 iOS开发
iOS 实时图像处理技术:使用 Core Image 和 Metal 进行高效滤镜应用
【4月更文挑战第8天】 在移动设备上实现高效的图像处理功能是现代应用程序开发中的一个关键需求。苹果的iOS平台提供了Core Image和Metal两大技术,它们为开发者提供了强大的工具来实现复杂的图像处理任务。本文将探讨如何使用Core Image进行基础图像处理,并结合Metal的性能优势,开发出一个自定义的实时图像滤镜。我们将通过创建一个能够动态调整参数并且具有实时反馈效果的滤镜来演示这一过程。
|
7月前
|
算法 计算机视觉 iOS开发
iOS 实时图像处理技术:Core Image 框架的应用
【4月更文挑战第8天】 在移动设备上实现高效的图像处理功能,对于提升用户体验和扩展应用程序能力至关重要。苹果公司的iOS平台提供了强大的Core Image框架,它允许开发者以高效和直观的方式执行复杂的图像处理任务。本文将深入探讨Core Image框架的关键特性,并通过实例演示如何在iOS应用中集成实时图像处理功能,不仅提高性能,同时保持了电池寿命的优化。我们将重点讨论面部识别、滤镜应用和性能优化等关键技术点,为读者提供一份全面的iOS图像处理指南。
|
7月前
|
存储 数据建模 iOS开发
iOS设备功能和框架: 什么是 Core Data,它在 iOS 中的作用是什么?
iOS设备功能和框架: 什么是 Core Data,它在 iOS 中的作用是什么?
116 1
|
7月前
|
定位技术 iOS开发
iOS设备功能和框架: 如何使用 Core Location 获取设备的位置信息?
iOS设备功能和框架: 如何使用 Core Location 获取设备的位置信息?
88 0
|
7月前
|
机器学习/深度学习 PyTorch TensorFlow
iOS设备功能和框架: 什么是 Core ML?如何在应用中集成机器学习模型?
iOS设备功能和框架: 什么是 Core ML?如何在应用中集成机器学习模型?
199 0
|
7月前
|
iOS开发
iOS设备功能和框架: 如何使用 Core Animation 创建动画效果?
iOS设备功能和框架: 如何使用 Core Animation 创建动画效果?
148 0
|
存储 缓存 数据可视化
Core Image:iOS图像处理技术追踪
Core Image是苹果官方提供的图像处理框架,通过丰富的built-in(内置)或自定义Filter(过滤器)高效处理静态图片、动态图片或视频。开发者还可以通过构造Filter链或自定义Core Image Kernel来实现更丰富的效果。 在WWDC20中,苹果官方针对Core Image技术在以下三方面做了优化:Core Image对视频/动图的支持、基于Metal构建Core Image (CI) Kernel以及Core Image的Debug支持。 这三方面会在下文逐一提到,文末笔者也会浅谈Core Image在手淘图片库中的应用可能以及对Core Image技术的展望。
1905 0
|
iOS开发
iOS - Core Animation 核心动画的使用
1、简单使用示例 1.1 时钟 QClockView.h @interface QClockView : UIView /// 创建时钟界面 + (instancetype)q_clockViewWithFrame:(CGRect)frame; @end QClockView.
1228 0
|
iOS开发
iOS - Core Animation 核心动画
1、UIView 动画 具体讲解见 iOS - UIView 动画 2、UIImageView 动画 具体讲解见 iOS - UIImageView 动画 3、CADisplayLink 定时器 具体讲解见 iOS - OC NSTimer 定时器 CADisplayLink 是一个能让我们以和屏幕刷新率相同的频率将内容画到屏幕上的定时器。
1320 0
|
存储 iOS开发 索引
【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记5 Data Structures、Methods、Properties
    在前面的几章中我们经常接触到Optional(可选型),今天来细致讲解一下可选型。
986 0