【发布时间】:2012-04-05 21:22:21
【问题描述】:
假设我有两个协议:
@protocol A
@end
和
@protocol B <A> // Protocol B conforms to protocol A.
@end
还有两个变量:
id<A> myVar = nil;
和
id<B> otherVar = //correctly initialized to some class that conforms to <B>;
那么,为什么我不能将 'otherVar' 分配给 'myVar'?
myVar = otherVar; //Warning, sending id<B> to parameter of incompatible type id<A>
谢谢!
【问题讨论】:
-
你试过转换变量吗?
-
我无法重现这个。协议是否在单独的文件中?您要导入哪些标头以及在哪里导入?
-
是的,协议在单独的文件中。问题在于文件的可见性。当我应该导入文件时,我使用了前向声明。
标签: objective-c ios macos polymorphism protocols