Я очень новичок в iOS. Я совершенно новичок в Core Data. Я беру кодовую базу проекта от бывших аспирантов моего профессора.
Когда мое приложение извлекает изображение из своей базы данных, путь к img следующий:
/Users/matt/Library/Developer/CoreSimulator/Devices/DA58E774-84BE-48F6-B50F-5921F682E87B/data/Containers/Bundle/Application/DA30DEFB-D90B-4D52-8462-3F8A5F4C55ED/Leaflet-US.app/thumbnail/species/Abies fraseri/images/LTV-BAM-2848_crop.jpg
Поскольку CoreSimulator/Devices
включен в путь, я предполагаю, что он ищет изображение в основных данных приложения. Я могу ошибаться, поэтому, пожалуйста, поправьте меня, если я ошибаюсь.
У меня также есть версия эскиза в файле ресурсов моего приложения, который, как вы видите, содержит каталог Abies fraseri
.
Прямо сейчас в Core Data нет каталога Abies fraseri
. Я знаю это, потому что в терминале я могу cd
войти в /Users/matt/Library/Developer/CoreSimulator/Devices/DA58E774-84BE-48F6-B50F-5921F682E87B/data/Containers/Bundle/Application/DA30DEFB-D90B-4D52-8462-3F8A5F4C55ED/Leaflet-US.app/thumbnail/species/
и убедиться, что Abies fraseri
не существует. Я хотел бы обновить версию thumbnail/species
основных данных, чтобы она была.
Из того, что я увидел в этих сообщениях вы обновляете объект основных данных, добавляя определенный ключ/ пара значений в массив, полученный в результате выборки.
Пример:
NSManagedObject *entityNameObj = [NSEntityDescription insertNewObjectForEntityForName:@"EntityName" inManagedObjectContext:context];
[entityNameObj setValue:@"someValue" forKey:@"someKey"];
Однако есть ли способ удалить и повторно ввести миниатюру вместо того, чтобы проходить и указывать каждую новую пару значений ключа? Я спрашиваю, потому что я обновил локальную базу данных, эскиз, с 200 новыми видами, каждый из которых представляет собой каталог с несколькими изображениями.
Запрос на выборку, если он применяется:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSManagedObjectContext* context = [(LeafletAppDelegate*)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Species" inManagedObjectContext:context] ;
[fetchRequest setEntity:entity];
if (predicate)
{
[fetchRequest setPredicate:predicate];
}
[fetchRequest setSortDescriptors:sortDescriptors];
// Create and initialize the fetch results controller.
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:context sectionNameKeyPath:sectionNameKeyPath cacheName:nil];
self.fetchedResultsController = aFetchedResultsController;
fetchedResultsController.delegate = self;
// Memory management.
[aFetchedResultsController release];
[fetchRequest release];
return fetchedResultsController;
/Users/matt/Library/Developer/CoreSimulator/Devices/DA58E774-84BE-48F6-B50F-5921F682E87B/data/Containers/Bundle/Application/.....
. Я хотел бы обновить версию основных данных, чтобы она была идентична той, что у меня есть в файлах моего проекта. - person maddie   schedule 27.06.2017