我有这样的代码:
if (@available(iOS 13.0, *)) {
if([getMetalDevice() supportsFamily:MTLGPUFamilyApple3])
pixelFormat = MTLPixelFormatBGRA10_XR;
else
pixelFormat = MTLPixelFormatBGRA8Unorm;
}
它适用于 Xcode 11,但不适用于 Xcode 10.3。
预处理器说它不知道是什么MTLGPUFamilyApple3
(在 iOS 13 中引入)。
我尝试使用预处理器宏:
#define isIOS13 (floor(NSFoundationVersionNumber) >= NSFoundationVersionNumber_iOS_13_0)
但预处理器抱怨Function-like macro 'floor' is not defined
.
同样对于
#define isIOS13 (int(NSFoundationVersionNumber) >= NSFoundationVersionNumber_iOS_13_0)
由于稳定性原因,我需要使用 Xcode 10.3 ( iOS 12.4 ) 和 Xcode 11 ( iOS 13.0 )。
我该怎么做才能让我的代码在两个 Xcode 中都能工作?
#ifdef __IPHONE_13_0
if (@available(iOS 13.0, *)) {
if([getMetalDevice() supportsFamily:MTLGPUFamilyApple3])
pixelFormat = MTLPixelFormatBGRA10_XR;
else
#else
{
#endif
pixelFormat = MTLPixelFormatBGRA8Unorm;
}
但只有当您提供一些支持多个 Xcode 的开源库时,您才应该使用此代码。
如果这是您项目的一部分,您应该迁移到新的 Xcode 并
不会使用预处理器运算符使您的代码过于复杂。
最好用 Appium 来解决问题,而不是这个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)