【发布时间】:2012-12-06 12:44:54
【问题描述】:
我有继承自 iOS 6 中引入的 UIActivity 的代码,它可以使用 Xcode 4.5 编译罚款,并且在 iOS 6 和以前的版本上运行良好(我在运行时检测到该类的可用性)。但是,是否可以使用 Xcode 4.4 编译此代码,该版本不在其 SDK 中包含 UIActivity 类?
如果我转发声明 UIActivity dealloc 方法不会编译,因为它调用 super 并且编译器警告我该类已经在继承树的根目录。也许有一种方法可以让这个类从我在本地定义的代理类继承,然后在运行时以某种方式调整它并实例化它,就好像它在编译时已经正确定义了一样?这样做的目的是使用 Xcode 4.4 编译代码并使用该 phantom 类在 iOS 6 上运行二进制文件。
我知道我可以使用定义来阻止我的子类使用 Xcode 4.4 及更早版本进行编译,但这意味着该功能在运行 iOS 6 的设备上不可用。
【问题讨论】:
-
可以使用条件编译。
-
为什么要限制自己使用 Xcode 4.4?
-
Xcode 4.5 仅支持在 iOS 4.3 及以上设备上部署。我仍然想支持old(我的)硬件。我不喜欢大公司强迫我购买新硬件仅仅因为。因此,如果有办法让新课程发挥作用……否则我将求助于stackoverflow.com/questions/12619124/…。
-
@GrzegorzAdamHankiewicz 我知道你的意思。我这里有一台不错的 iMac,它“不能”运行 ML。
标签: objective-c ios inheritance weak-linking