Для учебного проекта я создаю приложение, которое позволяет пользователю захватывать изображения и отмечать их.Я использую CoreData для хранения изображений и тегов имен.В приложении я изначально показываю UITable, в котором перечислены все теги с количеством изображений с этим тегом в виде субтитров строки.Существует отдельная часть приложения, где пользователи могут сделать снимок и отметить его одним или несколькими тегами.Фотосъемка и пометка, кажется, работают нормально.Я могу посмотреть в базе данных и увидеть, что все подходит.
Проблема заключается в том, когда я впервые захожу в приложение.Даже если в базе данных есть изображения, в UITableView ничего не отображается.После открытия приложения, если я затем сделаю снимок и добавлю к нему тег, оно отобразится в UITableView - и количество изображений отражает все изображения в базе данных с этим тегом.Другие теги, на которые не ссылается добавленное изображение, НЕ отображаются.Если я сделаю еще одну фотографию и добавлю тег, связанный с другими изображениями, новый тег отобразится в UITableView, и число изображений отражает все изображения с этим тегом.Похоже, что приложение распознает только данные, которые оно увидело (кеш ??), а не всю базу данных.
Я не уверен, какой код наиболее актуален, но я подозреваю, что проблема должна быть связана скак я присоединяю fetchedResultsController к UITableView.Вот код для этой функции, которая вызывается в функции viewDidLoad:
-(void) setupFetchedResultsController
{
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Tag"];
request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]];
MyAppDelegate *appDelegate = (MyAppDelegate*)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *managedObjectContext = [appDelegate.imagesDatabase managedObjectContext];
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext: managedObjectContext sectionNameKeyPath:nil cacheName: nil];
}
Я подтвердил, что она вызывается до рендеринга представления.Может кто-то пролить свет на то, что происходит?