有没有办法针对iOS 13有条件地使用@StateObject?

杰里米

我有一个针对iOS 13及更高版本的SwiftUI应用。@StateObject如果我在iOS 14上运行,我想有条件地使用属性包装器,因为它可以修复许多我不得不在iOS 13上解决的错误。

有什么办法可以通过#ifdef#if available(iOS 14, *)致电或类似方式有条件地做到这一点吗?我很高兴能为iOS 14完全独立实现给定视图。

我已经尝试过了,但是它当然不会编译。

struct MyView: View {
    if #available(iOS 14, *) {
        @StateObject var viewModel: ViewModel()
    } else {
        @ObservedObject var viewModel: ViewModel
    }
杰里米

可以使用如下@available属性来完成

class ViewModel: ObservableObject {}

@available(iOS 14, *)
struct FourteenView: View {
    @StateObject var viewModel = ViewModel()
    var body: some View {
        Text("iOS 14")
    }
}

struct ThirteenView: View {
    @ObservedObject var viewModel = ViewModel()
    var body: some View {
        Text("iOS 13")
    }
}

struct ContentView: View {
    var body: some View {
        if #available(iOS 14, *) {
            AnyView(FourteenView())
        } else {
            ThirteenView()
        }
    }
}

当然,这仅适用于Xcode 12。我正在使用12.0 beta 3(12A8169g)。

AnyView()ContentView是因为使用if #available(iOS 14, *)@ViewBuilder似乎没有正常工作。请参阅此Apple开发者论坛线程

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Fortran:有没有办法有条件地使用模块?

来自分类Dev

有没有办法在模式中有条件地定义“必需”键?

来自分类Dev

VueJS-有没有办法有条件地应用过渡?

来自分类Dev

有没有办法有条件地翻转HStack内容的顺序?

来自分类Dev

有没有办法有条件地运行脚本?

来自分类Dev

有没有办法在React JS中使用onClick有条件地呈现内容?

来自分类Dev

有没有办法根据静态或动态使用有条件地定义 Podspec 属性?

来自分类Dev

有没有办法有条件地添加过滤器内联?

来自分类Dev

有没有办法根据属性有条件地序列化 C# 列表对象?

来自分类Dev

有没有办法将属性标记为有条件

来自分类Dev

有没有办法对小部件进行有条件的重建

来自分类Dev

有没有办法找到所有针对资源的Rolify角色

来自分类Dev

有没有办法使用Leaflet有条件地改变多边形的不透明度?

来自分类Dev

有没有办法针对通过克隆节点创建的项目分配唯一的ID?

来自分类Dev

有没有办法遍历python数据框,比较列值(嵌套列表)并有条件地更新另一列?

来自分类Dev

有没有办法读取.env文件,然后有条件地要求composer.json中的软件包?

来自分类Dev

iOS13:有没有办法禁用新的滑动输入功能?

来自分类Dev

CSS:有没有办法做一个有条件的第n个孩子

来自分类Dev

有没有办法在带有条件的 INSERT INTO 子句中选择一个表?

来自分类Dev

有没有办法“懒洋洋地”阅读?

来自分类Dev

有没有办法以编程方式获取iOS中音频单元的所有参数?

来自分类Dev

有没有办法禁用ios上的所有动画?

来自分类Dev

有没有办法为iOS 8启用iOS 6设计风格?

来自分类Dev

有没有办法为iOS 8启用iOS 6设计风格?

来自分类Dev

有没有办法在Google日历和iOS日历中使用URL字段

来自分类Dev

服务器的 php 被黑了。有没有办法针对特定的字符串+标签?

来自分类Dev

有没有办法改变 Laravel 加密算法,使其针对相同的字符串生成相同的值?

来自分类Dev

有没有办法使用快速编写的cocoapod?

来自分类Dev

有没有办法在gnuplot中使用通配符?

Related 相关文章

  1. 1

    Fortran:有没有办法有条件地使用模块?

  2. 2

    有没有办法在模式中有条件地定义“必需”键?

  3. 3

    VueJS-有没有办法有条件地应用过渡?

  4. 4

    有没有办法有条件地翻转HStack内容的顺序?

  5. 5

    有没有办法有条件地运行脚本?

  6. 6

    有没有办法在React JS中使用onClick有条件地呈现内容?

  7. 7

    有没有办法根据静态或动态使用有条件地定义 Podspec 属性?

  8. 8

    有没有办法有条件地添加过滤器内联?

  9. 9

    有没有办法根据属性有条件地序列化 C# 列表对象?

  10. 10

    有没有办法将属性标记为有条件

  11. 11

    有没有办法对小部件进行有条件的重建

  12. 12

    有没有办法找到所有针对资源的Rolify角色

  13. 13

    有没有办法使用Leaflet有条件地改变多边形的不透明度?

  14. 14

    有没有办法针对通过克隆节点创建的项目分配唯一的ID?

  15. 15

    有没有办法遍历python数据框,比较列值(嵌套列表)并有条件地更新另一列?

  16. 16

    有没有办法读取.env文件,然后有条件地要求composer.json中的软件包?

  17. 17

    iOS13:有没有办法禁用新的滑动输入功能?

  18. 18

    CSS:有没有办法做一个有条件的第n个孩子

  19. 19

    有没有办法在带有条件的 INSERT INTO 子句中选择一个表?

  20. 20

    有没有办法“懒洋洋地”阅读?

  21. 21

    有没有办法以编程方式获取iOS中音频单元的所有参数?

  22. 22

    有没有办法禁用ios上的所有动画?

  23. 23

    有没有办法为iOS 8启用iOS 6设计风格?

  24. 24

    有没有办法为iOS 8启用iOS 6设计风格?

  25. 25

    有没有办法在Google日历和iOS日历中使用URL字段

  26. 26

    服务器的 php 被黑了。有没有办法针对特定的字符串+标签?

  27. 27

    有没有办法改变 Laravel 加密算法,使其针对相同的字符串生成相同的值?

  28. 28

    有没有办法使用快速编写的cocoapod?

  29. 29

    有没有办法在gnuplot中使用通配符?

热门标签

归档