首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在SwiftUI中使用弃用函数吗?

我可以在SwiftUI中使用弃用函数吗?
EN

Stack Overflow用户
提问于 2022-11-21 18:33:59
回答 1查看 38关注 0票数 -1

我正在用Xcode 14.0和SWIFT5.7和SwiftUI开发一个macOS应用程序。我在我的MacBook M1 Pro上运行MacBook 12.6。我需要至少支持一个macOS 11.0,这意味着有许多新的SwiftUI函数我无法使用,因为它们需要macOS 12.0+。对于SwiftUI布局,我经常使用的一个函数是overlay(_:alignment:)。根据苹果文档的说法,这是不可取的。这很有趣,因为我仍然能够在我描述的设置中使用它。然而,如果该功能在技术上被弃用,这是否会在部署时破坏该应用程序?总的来说,苹果的向后兼容性并不是很好,在你的应用程序中断或者被Apple拒绝之前,也很难找到关于向后兼容性的信息。如前所述,我不能使用建议的覆盖(对齐:内容:),因为它需要macOS 12.0+。

也许我应该放弃macOS 11,并要求使用macOS 12,因为它已经过去几年了,但据我所读到,根据2021年进行的一项调查,许多用户(超过70%)仍在运行macOS 11。也许现在macOS 13已经发布了,这就不一样了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-21 18:49:48

继续使用不推荐的overlay版本是安全的。苹果将在数年内从SwiftUI上删除它,如果有可能的话。

但是,如果您希望获得额外的安全性,您可以编写自己的修饰符,如果新的overlay不可用,则可以使用不推荐的overlay

代码语言:javascript
复制
extension View {
    @ViewBuilder
    func overlayWorkaround<V: View>(
        alignment: Alignment = .center,
        @ViewBuilder _ content: () -> V
    ) -> some View {
        if #available(macOS 12, macCatalyst 15, iOS 15, tvOS 15, watchOS 8, *) {
            self.overlay(alignment: alignment, content: content)
        } else {
            self.overlay(content(), alignment: alignment)
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74523443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档