0

我已使用以下方法在我的 FBChat 应用程序中注销时删除了存储在 Core Data 中的所有条目。

//delete persistance.......         



 if ([__persistentStoreCoordinator persistentStores] == nil)
     return;

 [self.managedObjectContext reset];
 [self.managedObjectContext lock];

 NSPersistentStore *store = [[self.persistentStoreCoordinator persistentStores] lastObject];

 if (![self.persistentStoreCoordinator removePersistentStore:store error:&error]) {
     NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
     abort();
 }  


// Delete file

 if ([[NSFileManager defaultManager] fileExistsAtPath:store.URL.path]) {
     if (![[NSFileManager defaultManager] removeItemAtPath:store.URL.path error:&error]) {
         NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
         abort();
     } 
 }

 __persistentStoreCoordinator = nil;

 __persistentStoreCoordinator = [self persistentStoreCoordinator];
 [self.managedObjectContext unlock];

但是当我再次登录时,fetchcontroller没有得到值。我已经设置了fetchcontroller=nilwhile注销。的委托方法fetchcontroller在登录时被调用。

如果有人有想法,请帮助我。提前致谢

4

1 回答 1

0

这是预期的行为。删除所有内容后,您将无法获得值。如果您的获取结果控制器是延迟创建的(代码未显示,但这通常是设计模式),它会在需要时自行创建。

这里没有惊喜。

于 2012-09-04T20:40:36.330 回答