如何从Swift确定设备类型? (OS X或iOS)

我知道Swift是比较新的,但是我想知道是否有办法确定设备类型?

(像你以前能够使用#define)?

主要是想知道如何区分OS X或iOS。我没有发现这个问题。

如果您正在为iOS和OS X(也可能现在用于watchOS和tvOS)构建,那么您至少建立两次代码:每个平台一次。如果您希望在每个平台上执行不同的代码,则需要构建时间条件,而不是运行时检查。

Swift没有预处理器,但它具有条件构建伪指令 – 并且在大多数情况下,它们看起来像C等效。

#if os(iOS) || os(watchOS) || os(tvOS)
    let color = UIColor.redColor()
#elseif os(OSX)
    let color = NSColor.redColor()
#else
    println("OMG,it's that mythical new Apple product!!!")
#endif

您还可以使用构建配置来测试架构(x86_64,arm,arm64,i386)或-D编译器标志(包括由标准Xcode模板定义的DEBUG标志)。

请参阅使用Swift与Cocoa和Objective-C中的Preprocessor Directives

(如果要在运行时区分哪种iOS设备,请使用UIDevice类,就像您在ObjC中一样。查看对您而不是设备重要的设备属性通常更有用和安全名称或成语 – 例如使用特征和大小类来布局您的UI,查询OpenGL以获取所需的GPU功能等)

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...