0

无需详细说明和破坏 NDA ......

如果 OSX 的开发人员预览显示某个 API 现在是 AppKit 的一部分,而我以前必须将 API 实现为类的一个类别,我该如何安排事情,以便构建和链接到该未来 SDK 的东西仍然可以运行在当前操作系统上。

因此,在当前用于 Lion 的 SDK 的抽象意义上,我coolThing在类的类别中定义了该方法,NSFooBar因此我可以调用

object.thing = fooBarInstance.coolThing

然而,未来的 SDK 向我展示了coolThing现在由 SDK 提供的内容,因此我的类别在构建时发生冲突。

当我在没有这种混乱的情况下链接到未来的 SDK 时,我能否确保我的应用程序仍然可以在 Lion 上运行(符号不可用)。

if(OSVersion == Lion) {
    return myImplementation;
}
else {
    return SDKNativeImplementaion;
}

我想我可以隐藏在类别中,但看起来有点乱。

4

1 回答 1

0

这就是您应该为您的类别方法添加前缀的原因。因此,您可以代替coolThing,调用它wb_coolThing或类似的名称。您的类别方法可以在运行时检查是否有coolThing方法,如果可用则调用该方法,如果没有则使用您自己的实现。

于 2012-06-02T13:16:50.943 回答