クラス「SensorDB」のオブジェクトへの「センサー」という名前の強力なポインターがあります。
「センサー」オブジェクト内で何かが変更された場合に UIViewController が通知されるように、NSFetchedResultController を作成しようとしました。
目的のオブジェクトを NSFetchedResultController に取得するために、次の NSPredicate を作成しました。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self == %@", self.sensor];
目標は、NSFetchedResultController にオブジェクトを 1 つだけ配置し、更新に関する通知を取得して、GUI を更新できるようにすることです。
しかし、アプリケーションを実行すると、NSFetchedResultController を割り当てて初期化しようとすると、アプリケーションがクラッシュします。
ここに私の NSFetchedResultController コードがあります:
- (NSFetchedResultsController *)fetchedResultsControllerSensor
{
if (_fetchedResultsControllerSensor != nil) {
return _fetchedResultsControllerSensor;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"SensorDB" inManagedObjectContext:dbHandler.managedObjectContext];
[fetchRequest setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self == %@", self.sensor];
[fetchRequest setPredicate:predicate];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:dbHandler.managedObjectContext sectionNameKeyPath:nil cacheName:@"SensorCache"];
self.fetchedResultsControllerSensor = theFetchedResultsController;
_fetchedResultsControllerSensor.delegate = self;
return _fetchedResultsControllerSensor;
}
あなたの助け、または別の/より良いアプローチをありがとう
リナード