您的位置:首页 > 移动开发 > IOS开发

IOS开发之CoreData中数据的删除

2013-09-06 09:22 417 查看
原始地址:IOS开发之CoreData中数据的删除

本文主要总结项目开发中,CoreData中,删除数据库数据的几种操作方式。

一、使用上下文的deleteObject方法

NSManagedObjectContext *context = ...;
NSEntityDescription *description = [NSEntityDescription entityForName:@"Table" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setIncludesPropertyValues:NO];
[request setEntity:description];
NSError *error = nil;
NSArray *datas = [context executeFetchRequest:request error:&error];
if (!error && datas && [datas count])
{
for (NSManagedObject *obj in datas)
{
[context deleteObject:obj];
}
if (![context save:&error])
{
NSLog(@"error:%@",error);
}
}


二、在XMPP中使用了MagicalRecord时的删除

//Table为一张表的名称
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *description = [NSEntityDescription entityForName:@"Table" inManagedObjectContext:[NSManagedObjectContext MR_defaultContext]];
[request setEntity:description];

NSArray *datas1 = [Table MR_executeFetchRequest:request];
if (datas1 && [datas1 count])
{
for (Table *obj in datas1)
{
[obj deleteEntity];
}
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
}


三、够2B的删除

1.删除数据库文件(你删除部分数据肯定不能用这个)

参考

NSPersistentStore *store = ...;
NSError *error;
NSURL *storeURL = store.URL;
NSPersistentStoreCoordinator *storeCoordinator = ...;
[storeCoordinator removePersistentStore:store error:&error];
[[NSFileManager defaultManager] removeItemAtPath:storeURL.path error:&error];


2.使用sqlite自带的删除方法

比如用FMDB写一个sql语句:"delete from table"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IOS XMPP CoreData