1

我有一个NSProxy名为的子类EBManagedObject和一个NSObject名为EBObject. EBManagedObject使用用于检索EBObjectfrom的 guid 进行初始化EBObjectRepositoryEBManagedObject会将发送给它的任何消息转发到它的EBObject,除了一些受限消息,在这种情况下它会抛出异常。因此,在任何可以使用 an 的地方,您都EBObject可以使用EBManagedObject. 我的问题是 Xcode 不理解这一点,并在尝试执行以下操作时给我一个不兼容的指针类型警告:

EBObject *object = [[EBManagedObject alloc] initWithGuid:guid];

修复起来很简单:

EBObject *object = (EBObject *)[[EBManagedObject alloc] initWithGuid:guid];

但我想知道是否有任何方法可以让 Xcode 考虑EBObjectEBManagedObject兼容指针类型?

我知道我可以创建一个他们都实现的协议并执行以下操作:

id<EBObject> object = [[EBManagedObject alloc] initWithGuid:guid];

但我有充分的理由不这样做。

顺便说一句,所有的类名都是组成的。我的实际场景比较复杂,所以我做了一个简化的例子来解释我的问题。

4

0 回答 0