我正在探索Core Data自定义迁移,为此我需要在现有商店上运行测试,看它是否与当前加载的妈妈兼容.要做到这一点,我需要从商店获取元数据.
所以我在AppDelegate类中这样做:
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *applicationSupportDirectory = [self applicationSupportDirectory];
NSURL *url = [NSURL fileURLWithPath: [applicationSupportDirectory stringByAppendingPathComponent: @"sharedPersistMainStore.sqlite"]];
NSDictionary *storeMetadata = [NSPersistentStore metadataForPersistentStoreWithURL:url error:&error];
但我得到这个错误:
metadataForPersistentStoreWithURL:error: cannot be sent to an abstract object of class
NSPersistentStore: Create a concrete instance!
听起来他们告诉我将其用作实例方法.但API肯定会将其列为类方法.
Odder仍然,调用此(已弃用)方法按预期工作:
NSDictionary *storeMetadata = [NSPersistentStoreCoordinator metadataForPersistentStoreWithURL:url error:&error];
除了警告它是一种弃用的方法.
有什么想法发生了什么?
最佳答案 您需要子类化
NSAtomicStore才能使用该方法