我正在使用CoreData创建静态NSManagedObject并从NSManagedObjectContext中获取。
static YFYMRDepartment *rootOne;
if (!rootOne) {
rootOne = [YFYMRDepartment MR_findFirstByAttribute:@"parent_id" withValue:@(0) inContext:[NSManagedObjectContext MR_defaultContext]];
}
return rootOne;
我正在使用Magical Record,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
}
}
我的问题是,为什么对象仍然存在,即使我删除了商店文件。
答案 0 :(得分:1)
删除商店不会对该对象执行任何操作。您需要重置上下文并使引用无效。