定义
用Swift编写的运行时检查集合。
换句话说,只需这样做
if Defines.Device.isSimulator {
//Don't ask permission to send push notifications
}
我们都知道苹果做事的方式™,对吧?与其检查设备,不如检查功能。例如,不要检查设备是否为iPod touch(因此没有GPS),而是检查是否支持CoreLocation
。或者,我们 shouldn't constantly check a device's screen size. 我们应该依赖Auto Layout的大小类及其它所有功能。
我明白了。
但有时你只是需要在某个地方放上一个标志。Compact
和Regular
并没有捕捉到12.9英寸iPad Pro屏幕的实际意义。所以也许你想要在那里展示更多内容。或者,也许你只是不希望在仿真器上请求推送通知的权限。我们都在那里。
所以只需导入import Defines
并继续你的生活。
注意
请注意,Define
不提供编译时安全检查。它仅是一组用于运行时检查的静态布尔值。
换句话说,执行此操作
let iOS9 = Defines.Version(versionString: "9.0")
if Defines.OS.isiOS && Defines.OS.version = iOS9 {
//execute code only available on iOS9
}
...将不会关闭任何编译器警告。
用法
只是为了让您了解基本情况。
定义
:与此模块交互的主要点。设备
currentModel
:运行您的代码的设备型号。isSimulator
模型
:自2008年以来所有相关苹果产品的模型标识符的枚举。isAppleTV
isAppleWatch
isiPad
isiPhone
isiPod
isMac
- 更多
屏幕
:关于您的应用程序可用的当前屏幕信息。bounds
:屏幕当前的边界矩形。currentWidth
currentHeight
maxLength
:宽度和高度中的较大者。minLength
:宽度和高度中的较小者。- 更多
OS
:关于运行您的应用程序的操作系统信息。version
:描述运行您的应用程序的操作系统版本,并使它们易于比较。
App
:您的应用程序,主要从Info.plist中读取。name(forClass:)
:找到您的应用程序名称。version(forClass:)
:找到您的应用程序版本。
版本
:定义软件版本,格式为<调用strong>major.minor.patch (build)。
捆绑包
:id(forClass:)
:找到您的应用程序捆绑ID。
规范
- iOS 9+
- watchOS 3+
- tvOS 9+
- macOS 10.11+
- Swift 3.3+
安装
Cocoapods
pod 'Defines', '~> 1.0'
然后在所需的地方导入 import Defines
Carthage
github "BellAppLab/Defines" ~> 1.0
然后在所需的地方导入 import Defines
Swift 包管理器
dependencies: [
.package(url: "https://github.com/BellAppLab/Defines", from: "1.0")
]
然后在所需的地方导入 import Defines
Git 子模块
cd toYourProjectsFolder
git submodule add -b submodule --name Defines https://github.com/BellAppLab/Defines.git
然后将 Definess
文件夹拖入你的 Xcode 项目中。
作者
Bell App Lab, [email protected]
致谢
标志图片 由 Sumana Chamrunworakiat 提供,源自 The Noun Project
许可
Defines 在 MIT 许可下可用。请参阅 LICENSE 文件获取更多信息。