在我的项目中,我有一些从服务器显示的对象,我们称它们为 Foo。当我得到我的 Foo 提要时,我将它们解析为一个名为 RemoteFoo 的 NSMutableDictionary 子类,并将这些 RemoteFoo 对象传递到应用程序周围以显示数据。
如果用户最终想要下载 RemoteFoo,然后我创建一个名为 Foo 的核心数据 NSManagedObject 实体,并使用 RemoteFoo 中的值对其进行实例化。这一切都有效。
我遇到的问题是,如果我想要一个方法在 RemoteFoo 和 Foo 上运行,我必须在 RemoteFoo.m 和 Foo.m 中复制它。另外,如果我的应用程序充满了重复的 init,就像:
- (id)initWithFoo:(Foo *)foo;
- (id)initWithRemoteFoo:(RemoteFoo *)foo;
如何避免所有这些代码重复,同时仍将临时远程 RemoteFoo 与代表用户在本地保存的 Foo 的核心数据 Foo 实体分开?