私のiOSアプリにはコアデータがあり、特定のビューで、コアデータから情報を取得すると、常に最新ではないことに気づきました。よく説明しています:
コア データの値を更新し、特定のビューに移動してこの情報を表示すると、その情報は最新ではありません。データベースへのアクセス方法を示します。
.h
@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
.m
@synthesize managedObjectContext;
- (NSArray *)sortInformation{
if (managedObjectContext == nil) {
managedObjectContext = [(AppDelegate *) [[UIApplication sharedApplication] delegate] managedObjectContext];
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"MyEntity" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
....
次に、テーブルビューに情報を表示します。すべて完全に機能します。この問題だけがあります。別のビューで行った更新がこのビューで読み取られないように見えることがありますが、アプリを閉じると、バックグラウンドから閉じてから、もう一度開きます...すべて正常に機能します...コアデータに更新を正しく保存したので、問題はこのビューにあると思います。コアデータの古い参照があり、更新バージョンではありません。おそらく問題は次のとおりです。
if (managedObjectContext == nil) {
managedObjectContext = [(AppDelegate *) [[UIApplication sharedApplication] delegate] managedObjectContext];
}
変数 managedObjectContext が nil の場合にのみ更新されるため、ビューの割り当てが解除された場合にのみ...決して、UITabbarController のルート ビュー コントローラーの 1 つであるため、私の質問は、コア データにアクセスして常に保持する方法です。それのアップデート版?