检查快速操作可用性
Checking for quick actions availability
我正在使用仅 IOS9
支持的主屏幕快速操作。
如果在 IOS8
中使用常量 UIApplicationLaunchOptionsShortcutItemKey
将会崩溃。
检查是否支持快速操作的正确方法是什么?
一种方法是通过 systemVersion 检查 IOS9
,但我希望有更好的方法。
[[UIDevice currentDevice] systemVersion]
我认为在 Swift
的情况下,检查 API
可用性的最佳方法是 Automatic operating system API availability checking
这是 iOS9
和 Swift2
发布的新功能
if #available(iOS 9, *) {
// use UIApplicationLaunchOptionsShortcutItemKey
} else {
// no available
}
#available
将检查我们是否使用 iOS 9 或更高版本,或任何其他未知平台,如 watchOS
,因此 *
也在这里。
如果您的代码在函数内部,那么您可以像这样将 #available
与 guard
一起使用。
guard #available(iOS 9, *) else {
return
}
标记你的方法和class以及
@available(iOS 9, *)
func useMyStackView() {
// use UIStackView
}
@available
与 #available
的工作方式类似,因此如果您的部署目标是 iOS7
或小于 9,则不能调用 useMyStackView()
在 objective C 中,您可以检查 class 是否存在。像
这样说
if([UIApplicationShortcutItem class]){
//Handle shortcut launch
}
对于Objc,也可以使用@available (iOS 9, *)
查看OS版本
if (@available(iOS 9, *)) {
//use UIApplicationLaunchOptionsShortcutItemKey
}
我正在使用仅 IOS9
支持的主屏幕快速操作。
如果在 IOS8
中使用常量 UIApplicationLaunchOptionsShortcutItemKey
将会崩溃。
检查是否支持快速操作的正确方法是什么?
一种方法是通过 systemVersion 检查 IOS9
,但我希望有更好的方法。
[[UIDevice currentDevice] systemVersion]
我认为在 Swift
的情况下,检查 API
可用性的最佳方法是 Automatic operating system API availability checking
这是 iOS9
和 Swift2
发布的新功能
if #available(iOS 9, *) {
// use UIApplicationLaunchOptionsShortcutItemKey
} else {
// no available
}
#available
将检查我们是否使用 iOS 9 或更高版本,或任何其他未知平台,如 watchOS
,因此 *
也在这里。
如果您的代码在函数内部,那么您可以像这样将 #available
与 guard
一起使用。
guard #available(iOS 9, *) else {
return
}
标记你的方法和class以及
@available(iOS 9, *)
func useMyStackView() {
// use UIStackView
}
@available
与 #available
的工作方式类似,因此如果您的部署目标是 iOS7
或小于 9,则不能调用 useMyStackView()
在 objective C 中,您可以检查 class 是否存在。像
这样说if([UIApplicationShortcutItem class]){
//Handle shortcut launch
}
对于Objc,也可以使用@available (iOS 9, *)
查看OS版本
if (@available(iOS 9, *)) {
//use UIApplicationLaunchOptionsShortcutItemKey
}