Что у меня есть это ядро Data Entity под названием "MyDocument", обладающий этими свойствамиОсновные данные Accessor - Перед Удалить
- имя_файла
- FileExtension
- fileURL
загрузить кучу файлов с сервера, сохраните их на диске в папке «Кэш», а затем вставьте строки в БД для каждого документа. Это просто упрощает управление документами в приложении без указания содержимого каталога и т. Д.
Все кажется ОК, за исключением того, что когда я удаляю Entity, я также хочу удалить связанный файл на диске. Я мог бы легко сделать что-то вроде этого
for(MyDocument *myDocument in ParentEntity.mydocuments)
{
[[NSFileManager defaultManager] removeItemAtURL:[NSURL fileURLWithPath:myDocument.fileURL] error:nil];
[context deleteObject:myDocument];
}
Но я пытаюсь получить это сделать через аксессор .... так что я могу назвать - deleteObject:myDocument
из любого места и быть уверенными, что соответствующий файл также удаляется.
Я знаю, что могу использовать параметр внешнего хранилища данных Core Data и не беспокоиться об этом вообще, но я использую QLPreviewController для просмотра этих документов, а QLPreviewController нуждается в URL-адресе файла, чтобы иметь возможность просматривать этот элемент. И если я сохраню документы в Core Data, мне придется записывать файл на диск из сохраненного NSData каждый раз, когда его нужно. Это не имело смысла, поэтому я решил хранить их снаружи самостоятельно и хранить ссылку в БД.
Итак, как бы я написать собственный аксессор, что бы прыгать в непосредственно перед объектом собирается быть удалены, и удалить соответствующий файл, а затем продолжить с удалением фактической Entity ..
Заранее спасибо
Могу ли я переопределить deleteObject и удалить там файл? –