我有这样的代码:
if (@available(iOS 13.0, *)) {
if([getMetalDevice() supportsFamily:MTLGPUFamilyApple3])
pixelFormat = MTLPixelFormatBGRA10_XR;
else
pixelFormat = MTLPixelFormatBGRA8Unorm;
}它在Xcode11中工作,但在Xcode10.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)出于稳定性的原因,我需要同时使用Xcode10.3( iOS 12.4 )和Xcode11( iOS 13.0 )。
我该怎么做才能让我的代码在两个Xcode中都能工作?
发布于 2019-09-24 23:39:59
#ifdef __IPHONE_13_0
if (@available(iOS 13.0, *)) {
if([getMetalDevice() supportsFamily:MTLGPUFamilyApple3])
pixelFormat = MTLPixelFormatBGRA10_XR;
else
#else
{
#endif
pixelFormat = MTLPixelFormatBGRA8Unorm;
}但是,只有在提供了一些支持多个Xcode的开源库时,才应该使用此代码。
如果这是您的项目的一部分,那么您应该迁移到新的Xcode,并且不要使用预处理器操作符使代码过于复杂。
最好用Appium来解决问题,而不是这样。
https://stackoverflow.com/questions/58083310
复制相似问题