[问题描述]
因为开发的是全平台的app,但是从操作流程上iPhone、iPad和Mac存在差异点的,所以页面展示上需要做一些区分。如何区分当前是什么系统呢?

经过尝试发现,iPad和iOS同属iOS,且系统的Big Sur系统中运行时,MacOS也会被认为是iOS,WTF

[解决方案]


#if os(OSX)
    print("macOS")
#elseif os(watchOS)
    print("watchOS")
#elseif os(tvOS)
    print("tvOS")
#elseif os(iOS)
    #if targetEnvironment(macCatalyst)
        print("macOS - Catalyst")
    #else
        print("iOS")
    #endif
#endif

[引用]
How to determine device type from Swift? (OS X or iOS)