Я использую CoreData для создания Static NSManagedObject и извлечения из NSManagedObjectContext.Статический NSManagedObject будет храниться в памяти
static YFYMRDepartment *rootOne;
if (!rootOne) {
rootOne = [YFYMRDepartment MR_findFirstByAttribute:@"parent_id" withValue:@(0) inContext:[NSManagedObjectContext MR_defaultContext]];
}
return rootOne;
Я использую магическую запись, код MR_find на самом деле выполняет некоторые задания выборки из контекста. Однако даже после того, как я удалил файл sql, статический объект все еще существует.
я удалить файл, как это:
NSError *error = nil;
NSURL *fileURL = pathForStore;
NSString *schemaURLString = [[fileURL absoluteString] stringByReplacingOccurrencesOfString:@".sqlite" withString:@".sqlite-shm"];
NSString *walURLString = [[fileURL absoluteString] stringByReplacingOccurrencesOfString:@".sqlite" withString:@".sqlite-wal"];
for (NSURL *romoveString in @[fileURL, [NSURL URLWithString:schemaURLString], [NSURL URLWithString:walURLString]]) {
[[NSFileManager defaultManager] removeItemAtURL:romoveString error:&error];
if(error) {
// Hanldle error
}
}
Мой вопрос, почему объект до сих пор там даже я удалить файл хранилища.
Вы не задали вопрос или не указали код для «статического» экземпляра – Wain
Вы думаете, что если вы удалите файл, 'rootOne' станет nil? –