objective-c – 通过NSPersistentStore类方法获取存储元数据时出错

我正在探索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才能使用该方法

点赞