请原谅编程术语的错误使用,我正在寻找 ios6 解决方案来解决我的问题:
我的头文件中有属性:
@property (nonatomic, strong) AClass *myExample;
但在我的 .m 文件中,我实际上可能希望 _myExample 为 AClass、BClass 或 CClass。
_myExample = [[BClass alloc] init]; // incompatible pointer types
什么是最好的实现方式
最佳答案
对于 AClass
中的所有三个,您可能会找出需要满足的条件。 , BClass
和 CCLass
进入协议(protocol),比如说 ICDoSomethingProtocol
然后将该属性声明为 id <NSObject, ICDoSomethingProtocol> myExample
类型而不是 AClass *
.
您可以跳过协议(protocol),直接使用 id <NSObject>
但是你会得到更少的编译时检查。
关于ios - 更改属性类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15191869/