改变财产类别

Ian*_*lay 2 objective-c ios ios6

请原谅我对编程术语的任何错误使用,我正在为我的问题寻找ios6解决方案:

我的头文件中有属性:

@property (nonatomic, strong) AClass *myExample;
Run Code Online (Sandbox Code Playgroud)

但在我的.m文件中,我实际上可能希望_myExample为AClass,BClass或CClass.

_myExample = [[BClass alloc] init]; // incompatible pointer types
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳方式是什么

Tom*_*mmy 5

你可能会考虑你需要对所有这三个问题AClass,BClass以及CCLass一个协议,ICDoSomethingProtocol然后声明属性是类型id <NSObject, ICDoSomethingProtocol> myExample而不是AClass *.

您可以跳过协议并继续使用,id <NSObject>但您将获得更少的编译时检查.