在 swift 中禁用 "is only available on iOS 11.0 or newer"?
Disable "is only available on iOS 11.0 or newer" in swift?
问题是我想检查一个需要在 class 中声明的变量的解决方案。但如果我这样做,我应该将整个 class 标记为 @available(iOS 11.0, *)
,这会导致许多其他地方发生很多变化。
那么最多可以在一个地方完全禁用它吗?或者在最坏的情况下暂时禁用它(只是为了测试新功能而不进行重大更改并且不更改最低 iOS 版本)?
我找到的最佳解决方案是使用属性:
class SomeClass {
private var _authSession: NSObject!;
@available(iOS 11.0, *)
var authSession: SFAuthenticationSession! {
get {
return _authSession as! SFAuthenticationSession
}
set(val) {
_authSession = val
}
}
}
这只是一个示例,所以如果有必要,!
可以替换为 ?
。简而言之 - iOS 禁止使用 @available
声明变量,但允许使用此宏标记属性。
问题是我想检查一个需要在 class 中声明的变量的解决方案。但如果我这样做,我应该将整个 class 标记为 @available(iOS 11.0, *)
,这会导致许多其他地方发生很多变化。
那么最多可以在一个地方完全禁用它吗?或者在最坏的情况下暂时禁用它(只是为了测试新功能而不进行重大更改并且不更改最低 iOS 版本)?
我找到的最佳解决方案是使用属性:
class SomeClass {
private var _authSession: NSObject!;
@available(iOS 11.0, *)
var authSession: SFAuthenticationSession! {
get {
return _authSession as! SFAuthenticationSession
}
set(val) {
_authSession = val
}
}
}
这只是一个示例,所以如果有必要,!
可以替换为 ?
。简而言之 - iOS 禁止使用 @available
声明变量,但允许使用此宏标记属性。