我是 Objective-C 的新手,这个兼容性问题MTKView
真的让我很困惑。
我有一个视图类,以前是这样的,
@interface MyView : NSView
@end
@implementation MyView
// A lot of implementations
@end
我现在正在尝试使用 Metal 来刷新MyView
. 使用MTKView
,在 macOS 上定义为
@interface MTKView : NSView
我将代码更改为
@interface MyView : MTKView
@end
我用最新的 SDK 编译了我的代码,所以它在编译时不会有任何问题。
我的问题是,
由于
MTKView
仅在 macOS 10.11+ 上受支持,如果我在操作系统版本低于 10.11 的设备上运行此代码会发生什么情况?我认为它可能不起作用,因为这些设备在运行时一无所知MTKView
。但是,Apple 能否神奇地考虑到这个问题,并让它在我的代码编译时像 NSView 一样在旧设备上运行?如果它不适用于旧操作系统版本的设备,我该怎么做才能在没有任何兼容性问题的情况下实现这一目标?解决这种兼容性问题的常用方法是什么?它应该像这样工作,但我认为运行时继承不是一回事。
// Just to show how it should work
if (Is_10_11_Or_Above())
@interface MyView : MTKView
else
@interface MTKView : NSView