NSProxy несовместимые типы указателей
У меня есть NSProxy
подкласс называется EBManagedObject
и NSObject
подкласс называется EBObject
, EBManagedObject
инициализируется с помощью guid, который используется для получения EBObject
от EBObjectRepository
, EBManagedObject
перешлет любое сообщение, отправленное ему на его EBObject
, за исключением некоторых запрещенных сообщений, в этом случае он выдаст исключение. Так что везде, где вы можете использовать EBObject
Вы можете использовать EBManagedObject
, Моя проблема в том, что XCode не понимает этого и выдает предупреждение о несовместимых типах указателей при попытке сделать следующее:
EBObject *object = [[EBManagedObject alloc] initWithGuid:guid];
Это достаточно просто исправить:
EBObject *object = (EBObject *)[[EBManagedObject alloc] initWithGuid:guid];
Но мне интересно, есть ли способ заставить Xcode рассмотреть EBObject
а также EBManagedObject
совместимые типы указателей?
Я знаю, что могу создать протокол, который они оба реализуют и делают что-то вроде:
id<EBObject> object = [[EBManagedObject alloc] initWithGuid:guid];
Но у меня есть веские причины не делать этого.
Кстати, все имена классов составлены. Мой реальный сценарий более сложный, поэтому я сделал упрощенный пример, чтобы объяснить мою проблему.