У меня есть приложение, которое позволяет пользователям загружать изображения с веб-сайта. (Контрольный список сборщика игрушек 2 - https://itunes.apple.com/us/app/toy-collector-checklist-2/id919363870?mt=8)Удаление двоичных данных из Core Data iOS 8
Пользователь может теоретически загружать тысячи изображений, создавая довольно большой рабочий свиньи. Я пытаюсь добавить «Удалить все изображения», чтобы пользователь мог очистить изображения без удаления приложения.
Код, похоже, работает. Изображения больше не видны при нажатии кнопки, и значение основных данных возвращает «nil», когда я его проверю, но когда я перехожу к моим настройкам использования, пространство, похоже, не освобождается. Я использую то, что я хотел бы рассмотреть довольно стандартный закачает и обновления кода:
CoreDataHelper *cdh =
[(AppDelegate *)[[UIApplication sharedApplication] delegate] cdh];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Item"
inManagedObjectContext:cdh.context];
[fetchRequest setEntity:entity];
// [fetchRequest setPredicate:nil];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"photo != nil OR photoAlt != nil OR photoCam != nil"]];
[fetchRequest setFetchBatchSize:500];
NSManagedObject *removePhotoFromObject;
NSError *error = nil;
NSArray *results = [cdh.context executeFetchRequest:fetchRequest error:&error];
for (removePhotoFromObject in results) {
[removePhotoFromObject setValue:nil forKey:@"photoCam"];
[removePhotoFromObject setValue:nil forKey:@"photo"];
[removePhotoFromObject setValue:nil forKey:@"photoAlt"];
[removePhotoFromObject setValue:nil forKey:@"thumbnail"];
}
[cdh backgroundSaveContext];
Это устанавливает значение возможных местоположений фото к нулю. Если я снова запустил тот же код, он не добавит их в массив (потому что их значения теперь равны нулю), поэтому я знаю, что эта часть работает. И изображения и миниатюры удаляются. Но при проверке на вкладке «Настройки» использование данных не меняется.
Что-то, что может быть пачкая выработок:
товара является юридическим лицом. фото, photoAlt и photoCam ТАКЖЕ, каждая сущность, с отношением «В один» с пунктом
Все они относятся к категории «Двоичные данные» в модели.
Любые мысли и предложения были бы весьма благодарны. Я смотрел на этих форумах, а также на большие сети, но до сих пор не смог найти решение.
Zack
Думаю, что было! Мне пришлось сделать еще одну модификацию - вместо NSManagedObject * removePhotoFromObject я использовал Item * removePhotoFromObject, поскольку Item - это мой пользовательский NSManagedObject, и это единственный способ получить «.». нотация для правильной работы. Спасибо за совет! –