博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
core data 基础操作
阅读量:6428 次
发布时间:2019-06-23

本文共 2890 字,大约阅读时间需要 9 分钟。

1. 插入

AppDelegate *app = [[UIApplication sharedApplication] delegate];

NSManagedObjectContext *context = [app managedObjectContext];

NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:@"entityname" inManagedObjectContext:context];

[newManagedObject setValue:value forKey:@"propertyname"];

NSError *error; if (![context save:&error]) {

// Handle the error…

}

//查询

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext;
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Hero" inManagedObjectContext:managedObjectContext];
NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc]
initWithKey:@”name” ascending:YES];
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc]
initWithKey:@”secretIdentity” ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc]
initWithObjects:sortDescriptor1, sortDescriptor2, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:20];
NSArray *objecs = [context executeFetchRequest: fetchRequest error:&error];

//删除

NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext;

[context deleteObject:[objecs objectIndex:index];

// Save the context.

NSError *error; if (![context save:&error]) {

// Update to handle the error appropriately.

NSLog(@”Unresolved error %@, %@”, error, [error userInfo]);

exit(-1); // Fail

}

//属性

NSManagedObject *managedObject;

NSString *keypath;

NSString *labelString;

NSString *currentValue = [self.managedObject valueForKeyPath:self.keypath];

NSEntityDescription *ed = [self.managedObject entity];

NSDictionary *properties = [ed propertiesByName];

NSAttributeDescription *ad = [properties objectForKey:self.keypath];

NSString *defaultValue = nil;

if (ad != nil)

defaultValue = [ad defaultValue];

//core data relation  查询 或 修改

NSManagedObject *child = [NSEntityDescription insertNewObjectForEntityForName: @"Person" inManagedObjectContext:thePerson.managedObjectContext];

NSMutableSet *children = [person ValueForKey:@"children"]; //查询,可修改

[children addObject:child];

[children removeObject:childToBeRemoved];

[[children managedObjectContext] deleteObject:childToBeRemoved]; //真正的删除

NSSet *children = [person valueForKey:@"children"]; //查询,不可修改

for (NSManagedObject *oneChild in children) {

// do something

}

补充:

1 是否将图片存储到Core Data中,以及NSData如何存储的一些规则

First, always store your images in a usable format such as PNG or JPEG instead of NSData. This will save you a lot of headaches.

Second, the rule for storing binary data is:

  • < 100kb store in the same table as the relevant data
  • < 1mb store in a separate table attached via a relationship to avoid loading unnecessarily
  • > 1mb store on disk and reference it inside of Core Data

(1。图片尽量保存为文件 2。<100k 和相关数据保存在一张表中  <1M保存在单独的一张表中 >1M保存到磁盘文件)

转载地址:http://kenga.baihongyu.com/

你可能感兴趣的文章
第十一次发博不知道用什么标题好
查看>>
收藏网址目录
查看>>
vue局部组件
查看>>
js行内式遇到的一些问题 DOM对象和jq对象转换的问题
查看>>
hoj1991 Happy 2005
查看>>
Django extra 和 annotate
查看>>
【转】ORACLE 表空间扩展方法
查看>>
[转载] 全本张广泰——第十五回 父子遇高人 原是同门亲
查看>>
Spring JdbcTemplate源码阅读报告
查看>>
查找SQL数据表或视图中的字段属性信息
查看>>
python3随机生成中文字符
查看>>
命令式和符号式混合编程
查看>>
yum 安装mongodb mysql
查看>>
后续更新 | 减少使用非 SDK 接口以提升稳定性
查看>>
如何优化UPS的工作模式为数据中心节省运营成本
查看>>
luogu_P3674 小清新人渣的本愿
查看>>
[bzoj 3110][zjoi 2013]K大数查询
查看>>
luogu_P3345[zjoi2015]幻想乡战略游戏
查看>>
Hibernate 二级缓存
查看>>
Kettle应用实例
查看>>