簡體   English   中英

Swift 如果#available 沒有按預期工作?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM