C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – 如何删除核心数据持久性存储大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要删除我的持久存储(按对象执行它不实用,因为我有超过100,000个对象).我试过这个:
- (IBACtion)resetDatabase:(id)sender {

    NSPersistentStore* store = [[__persistentStoreCoordinator persistentStores] lastObject];

    NSError *error = nil;
    NSURL *storeURL = store.URL;

    // release context and model
    [__managedObjectContext release];
    [__managedObjectModel release];
    __managedObjectModel = nil;
    __managedObjectContext = nil;

    [__persistentStoreCoordinator removePersistentStore:store error:nil];

    [__persistentStoreCoordinator release];
    __persistentStoreCoordinator = nil;

    [[NSFileManager defaultManager] removeItemAtPath:storeURl.path error:&error];
    if (error) {
        NSLog(@"filemanager error %@",error);
    }    

     // recreate the stack
     __managedObjectContext = [self managedObjectContext];

}

但是当我尝试之后将实体插入商店时,我收到此错误

This NSPersistentStoreCoordinator has no persistent stores.  It cAnnot perform a save operation.

更新:
我尝试在删除持久存储之前释放MOC和MOM,但我仍然得到相同的错误.

解决方法

以下是我在多个应用中执行“重置数据”功能方法
- (void)reset {
  // Release CoreData chain
  [_managedObjectContext release];
  _managedObjectContext = nil;
  [_managedObjectModel release];
  _managedObjectModel = nil;
  [_persistentStoreCoordinator release];
  _persistentStoreCoordinator = nil;

  // delete the sqlite file
  NSError *error = nil;
  if ([fileManager fileExistsAtPath:_storeURl.path])
    [fileManager removeItemAtURL:_storeURL error:&error];
  // handle error...
}

基本上我只是释放CoreData链,然后删除persistentStore文件.这就是你要做的,不使用removePersistentStore,我不在乎,因为我稍后会重建persistentStore协调器.然后在下一个核心数据调用时,使用单独的惰性样式构造函数透明地重建链,例如:

- (NsmanagedObjectModel *) managedObjectModel {
  if (!_managedObjectModel)
    _managedObjectModel = [[NsmanagedObjectModel mergedModelFromBundles:nil] retain];
  return _managedObjectModel;
}

大佬总结

以上是大佬教程为你收集整理的objective-c – 如何删除核心数据持久性存储全部内容,希望文章能够帮你解决objective-c – 如何删除核心数据持久性存储所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。