IOS开发之CoreData中数据的删除

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

一、使用上下文的deleteObject方法

[cpp]  view plain  copy
 print ?
  1.  NSManagedObjectContext *context = ...;  
  2. NSEntityDescription *description = [NSEntityDescription entityForName:@"Table" inManagedObjectContext:context];  
  3. NSFetchRequest *request = [[NSFetchRequest alloc] init];  
  4. [request setIncludesPropertyValues:NO];  
  5. [request setEntity:description];  
  6. NSError *error = nil;  
  7. NSArray *datas = [context executeFetchRequest:request error:&error];  
  8. if (!error && datas && [datas count])  
  9. {  
  10.     for (NSManagedObject *obj in datas)  
  11.     {  
  12.         [context deleteObject:obj];  
  13.     }  
  14.     if (![context save:&error])  
  15.     {  
  16.         NSLog(@"error:%@",error);  
  17.     }  
  18. }  


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

[cpp]  view plain  copy
 print ?
  1.  //Table为一张表的名称  
  2. NSFetchRequest *request = [[NSFetchRequest alloc] init];  
  3. NSEntityDescription *description = [NSEntityDescription entityForName:@"Table" inManagedObjectContext:[NSManagedObjectContext MR_defaultContext]];  
  4. [request setEntity:description];  
  5.   
  6. NSArray *datas1 = [Table MR_executeFetchRequest:request];  
  7. if (datas1 && [datas1 count])  
  8. {  
  9.     for (Table *obj in datas1)  
  10.     {  
  11.         [obj deleteEntity];  
  12.     }  
  13.     [[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];  
  14. }  


三、够2B的删除

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

参考

[cpp]  view plain  copy
 print ?
  1. NSPersistentStore *store = ...;  
  2. NSError *error;  
  3. NSURL *storeURL = store.URL;  
  4. NSPersistentStoreCoordinator *storeCoordinator = ...;  
  5. [storeCoordinator removePersistentStore:store error:&error];  
  6. [[NSFileManager defaultManager] removeItemAtPath:storeURL.path error:&error];  


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

比如用FMDB写一个sql语句:"delete from table"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值