我正在处理使用 Core Data 的大量现有代码库。
我有扩展 NSManagedObject 并保留在核心数据中的类型。
我需要完全从 Core Data 迁移(这样做的原因并不重要,但我有充分的理由)。但是,我有一个基本的限制。
- 我无法将这些类型更改为 NSObject(某些用例必须继续使用 Core Data)。
- 这些 NSManagedObject 类型在我的业务逻辑中被大量传递。我不想重构该业务逻辑并引入新的/“非托管”类型。
假设我有一个类型为 Foo
的 NSManagedObject。我试过类似的东西:
Foo *foo = [[Foo alloc] init];
foo.name = "beebunny";
foo.name 调用导致崩溃。
name
是 @dynamic
并且具有自定义设置方法,例如:
- (void)setfoo:(Foo *)fooIn
{
[self setfoo:fooIn];
}
[self setfoo:fooIn];
调用导致异常(未知选择器)。
如果我正在使用扩展 NSManagedObject 的任何类型,似乎我必须使用 Core Data。
对于我要关闭核心数据的迁移类型,是否有适当/推荐的模式?