[英]Swift if #available not working as expected?
我有一個在 iOS 和 MacOS 中運行的共享框架,我遇到了在 MacOS Catalina 中需要進行額外檢查的情況。 我認為通過使用 swift #available 這將起作用:
if #available(OSX 10.15, *){
/// My Catalina Code
}
事實是,這段代碼傳入了 iOS。 這會是一個錯誤,還是預計不會以這種方式使用?
它應該是這樣的:
if #available(macCatalyst 10.15, *) {
// use 10.15
} else {
}
如果您使用催化劑。
除此之外,沒有任何東西可以說明您的代碼片段為什么不起作用。
如果您查看Apple 文檔,它應該是這樣的。
if #available(macOS 10.15, *){
/// My Catalina Code
}
您可能需要將條件編譯與#available
一起使用:
#if os(macOS)
if #available(macOS 15.0, *) {
//...
}
#endif
或者一個丑陋的解決方法:
if #available(macOS 15.0, iOS 9999.99, *) {
//...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.