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 logoutを設定しました。のデリゲート メソッドはfetchcontroller、ログイン時に呼び出されます。

誰かが考えているなら、私を助けてください。前もって感謝します

4

1 に答える 1

0

これは予想される動作です。すべてを削除した後、値を取得していません。フェッチされた結果コントローラーが遅延して作成された場合(コードは表示されていませんが、通常はデザインパターンです)、必要に応じて作成されます。

ここに驚きはありません。

于 2012-09-04T20:40:36.330 に答える