ios - 更改属性类别

标签 ios objective-c ios6

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

我的头文件中有属性:

@property (nonatomic, strong) AClass *myExample;

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

_myExample = [[BClass alloc] init]; // incompatible pointer types

什么是最好的实现方式

最佳答案

对于 AClass 中的所有三个,您可能会找出需要满足的条件。 , BClassCCLass进入协议(protocol),比如说 ICDoSomethingProtocol然后将该属性声明为 id <NSObject, ICDoSomethingProtocol> myExample 类型而不是 AClass * .

您可以跳过协议(protocol),直接使用 id <NSObject>但是你会得到更少的编译时检查。

关于ios - 更改属性类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15191869/

相关文章:

iOS 应用程序在一个模拟器上运行良好,但在设备上运行不佳

objective-c - 从我的应用程序访问文档/收件箱中 IOS 上的文件

iphone - 在 ARC 模式下初始化变量

ios6 - 使用状态栏在 Xcode 4.5 iOS 6.0 中更改为横向

ios - 在 iPad 3 上渲染手绘上下文的最佳实践

ios - 根据文本字段中列出的次数播放声音

html - webkit-溢出-滚动 : touch; orientation change issue

iphone - 使用 Quartz 制作 iOS 逐帧动画

iphone - 查询数据库 MySQL iOS 应用程序

ios - 在sqlite中更改日期格式