iOS CoreData简单封装
来源:互联网 发布:小额贷款业务软件 编辑:程序博客网 时间:2024/04/30 04:13
#import <CoreData/CoreData.h>
。h
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@interface YBCoreDataTool : NSObject
@property (readonly,strong, nonatomic)NSManagedObjectContext *managedObjectContext;
@property (readonly,strong, nonatomic)NSManagedObjectModel *managedObjectModel;
@property (readonly,strong, nonatomic)NSPersistentStoreCoordinator *persistentStoreCoordinator;
- (void)saveContext;
- (NSURL *)applicationDocumentsDirectory;
//增
-(void)add:(NSArray *)data;
//删除全部数据
-(void)deleteData;
//查
-(NSArray *)fetch;
。m
#import "YBCoreDataTool.h"
#import "UserInfo.h"
#import "YBGetUsersInfoItemInfo.h"//最后解析的
static NSString *Entityname =@"UserInfo";
@implementation YBCoreDataTool
@synthesize managedObjectContext =_managedObjectContext;
@synthesize managedObjectModel =_managedObjectModel;
@synthesize persistentStoreCoordinator =_persistentStoreCoordinator;
//请求数据后,传入参数,添加数据
-(void)add:(NSArray *)data{
//插入
for (YBGetUsersInfoItemInfo *infoDatain data) {
UserInfo *info =[NSEntityDescriptioninsertNewObjectForEntityForName:EntitynameinManagedObjectContext:self.managedObjectContext];
info.groupDesc = infoData.GroupDesc;
info.memstatus = infoData.Memstatus;
info.nickname = infoData.Nickname;
info.userId = [NSStringstringWithFormat:@"%@",infoData.UserId];
info.phone = infoData.Phone;
info.userPhoto = infoData.UserPhoto;
NSError *error =nil;
[self.managedObjectContextsave:&error];
if (error) {
[NSExceptionraise:@"保存错误"format:@"%@", [errorlocalizedDescription]];
}
}
}
//删除
-(void)deleteData
{
NSManagedObjectContext *context =[selfmanagedObjectContext];
NSEntityDescription *entity = [NSEntityDescriptionentityForName:EntitynameinManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequestalloc] init];
// [request setIncludesPropertyValues:NO];
[request setEntity:entity];
NSError *error =nil;
NSArray *datas = [contextexecuteFetchRequest:requesterror:&error];
if (!error && datas && [datascount])
{
for (NSManagedObject *objin datas)
{
[context deleteObject:obj];
}
if (![contextsave:&error])
{
NSLog(@"error:%@",error);
}
}
}
//根据id获取头像和昵称
-(NSArray *)fetch{
NSManagedObjectContext *context =[selfmanagedObjectContext];
// 限定查询结果的数量
//setFetchLimit
// 查询的偏移量
//setFetchOffset
NSFetchRequest *fetchRequest = [[NSFetchRequestalloc] init];
// [fetchRequest setFetchLimit:pageSize];
// [fetchRequest setFetchOffset:currentPage];
NSEntityDescription *entity = [NSEntityDescriptionentityForName:@"UserInfo"inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSError *error;
NSArray *fetchedObjects = [contextexecuteFetchRequest:fetchRequesterror:&error];
NSMutableArray *resultArray = [NSMutableArrayarray];
for (UserInfo *infoin fetchedObjects) {
NSLog(@"%@", info.phone);
NSLog(@"%@", info.nickname);
NSLog(@"%@",info.userPhoto);
NSLog(@"%@",info.userId);
YBGetUsersInfoItemInfo *infoData =[[YBGetUsersInfoItemInfoalloc]init];
infoData.GroupDesc=info.groupDesc;
infoData.Memstatus=info.memstatus;
infoData.Nickname =info.nickname;
infoData.UserId =info.userId;
infoData.Phone =info.phone;
infoData.UserPhoto=info.userPhoto;
[resultArray addObject:infoData];
}
return resultArray;
}
#pragma mark ---CoreData
- (void)saveContext
{
NSError *error =nil;
NSManagedObjectContext *managedObjectContext =self.managedObjectContext;
if (managedObjectContext !=nil) {
if ([managedObjectContexthasChanges] && ![managedObjectContextsave:&error]) {
NSLog(@"Unresolved error %@, %@", error, [erroruserInfo]);
abort();
}
}
}
#pragma mark - Core Data stack
// Returns the managed object context for the application.
// If the context doesn't already exist, it is created and bound to the persistent store coordinator for the application.
- (NSManagedObjectContext *)managedObjectContext
{
if (_managedObjectContext !=nil) {
return_managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [selfpersistentStoreCoordinator];
if (coordinator !=nil) {
_managedObjectContext = [[NSManagedObjectContextalloc] init];
[_managedObjectContextsetPersistentStoreCoordinator:coordinator];
}
return_managedObjectContext;
}
// Returns the managed object model for the application.
// If the model doesn't already exist, it is created from the application's model.
- (NSManagedObjectModel *)managedObjectModel
{
if (_managedObjectModel !=nil) {
return_managedObjectModel;
}
NSURL *modelURL = [[NSBundlemainBundle] URLForResource:@"UserInfo"withExtension:@"momd"];
_managedObjectModel = [[NSManagedObjectModelalloc] initWithContentsOfURL:modelURL];
return_managedObjectModel;
}
// Returns the persistent store coordinator for the application.
// If the coordinator doesn't already exist, it is created and the application's store added to it.
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if (_persistentStoreCoordinator !=nil) {
return_persistentStoreCoordinator;
}
NSURL *storeURL = [[selfapplicationDocumentsDirectory]URLByAppendingPathComponent:@"UserInfo.sqlite"];
NSError *error =nil;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinatoralloc] initWithManagedObjectModel:[selfmanagedObjectModel]];
if (![_persistentStoreCoordinatoraddPersistentStoreWithType:NSSQLiteStoreTypeconfiguration:nilURL:storeURL options:nilerror:&error]) {
NSLog(@"Unresolved error %@, %@", error, [erroruserInfo]);
abort();
}
return_persistentStoreCoordinator;
}
#pragma mark - Application's Documents directory
// Returns the URL to the application's Documents directory.获取Documents路径
- (NSURL *)applicationDocumentsDirectory
{
return [[[NSFileManagerdefaultManager] URLsForDirectory:NSDocumentDirectoryinDomains:NSUserDomainMask]lastObject];
}
@end
- iOS CoreData简单封装
- iOS之CoreData基本使用以及简单封装
- IOS CoreData 简单使用CURD
- iOS数据存储之CoreData封装MagicalRecord
- CoreData 封装
- CoreData封装
- coredata 封装
- iOS - CoreData了解和简单应用
- iOS开发-CoreData的简单使用
- iOS开发-CoreData的简单使用
- iOS开发:coredata的简单使用
- iOS Xcode8下CoreData的简单应用
- 自己写简单CoreDataManager封装对CoreData操作
- 第四篇《iOS 进一步封装CoreData的MagicalRecord的使用》
- IOS CoreData
- iOS CoreData
- iOS-CoreData
- iOS CoreData
- 数位动态规划(acm hdu 3555 ,hdu 2089,hdu 4278)
- STL之set集合容器
- requset.setAttribute(),session.setAttribute(),aplication.setAttribute()区别
- python dir()和vars()的区别
- 数据结构实验之栈三:后缀式求值
- iOS CoreData简单封装
- mybatis-generator学习入门
- Oracle备份恢复-手动完全恢复
- uva131 The Psychic Poker Player
- CSS文本样式[上]
- python笔记之NUMPY中的meshgrid()——生成以某点为中心指定半径内的
- 仿iOS的对话框
- HTML中调用Api
- 单例模式