swift - 我在 Swift UI 结构中可以拥有的状态变量的最大数量是多少,性能会随着变量的增加而降低吗?

标签 swift swiftui swift5 swift-structs

我可以在 Swift UI 结构中拥有的状态变量的最大数量是多少?

struct Example: View {

    @State var first : Bool = true
    @State var second: Double = 94.4
    @State var third: CGFloat = 45.45
        .
        .
        .
     How many maximum ?

    var body: some View {
        Text("Hello ")
    }

}

此外,拥有大量状态变量是否真的会降低应用程序的速度?我需要清楚地了解这件事的可扩展性,因为我是声明式编程的新手 :P

最佳答案

只是为了让您开始回答,

  1. 很难相信会有任何性能问题。 “声明式编程”实际上并不存在。它只是一个编译器/运行时/任何做一些检查的东西。与管道中的其他结构没有真正实质性的范式差异。

如果,令人难以置信,你正在做真正的性能编程,也许是科学的或游戏之类的,你在一百万年内永远不会参与这样的事情,所以它没有相关性。

此外,与手机上的 UI 相关的任何东西都使用了惊人的处理能力,这毫无值(value)。呈现当时恰好出现在屏幕上的任何一个文本字符!是样条曲线抖动、blitting 等惊人的舞蹈。诸如“checking done by运行时系统”实际上是无关紧要的,除非在非常不寻常的情况下。

总结:不要考虑这种环境下的性能。

  1. 你能有多少个?如果你粘贴几千,它工作正常。很难相信有任何限制。

总结:您可能会想到像“30”这样的限制。无论如何没有这样的限制

(可能有一些技术上的、神秘的限制——比如 6400 万——但这与你正在做的事情完全无关!)


管理总结:放松和享受,这些都不是问题。


有关特定案例的更多信息

I am trying to animate, i am using withAnimation to display percentage progress in a ring

对于所描述的状态变量的数量(例如,少于 100,000 - 您使用的是大约“20”),检查的额外开销是完全无关紧要的。它太低了,您无法测量。

待定,这可能不是最优雅的方式,但是,关于提出的特定性能问题,这绝对是非问题。享受吧!

关于swift - 我在 Swift UI 结构中可以拥有的状态变量的最大数量是多少,性能会随着变量的增加而降低吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60579565/

相关文章:

Swift AnyClass 引用 Class 实例还是只是 Type?

arrays - 如何在 Swift 中创建二维数组?

具有不均匀大小元素的 SwiftUI HStack

ios - 有什么方法可以避免 SwiftUI GeometryReader 阻止嵌套 View 在 List 内增长?

ios - 如何在 swift 中使用 async/await 同时运行多个 API 调用?

swift - 实现泛型协议(protocol)方法但对整个类使用泛型

objective-c - 从 Objective C 转换为 Swift 时的预期声明

swift - 带有自定义边框的 UIImageView

swiftui - 如何更改菜单的标签?

ios - SwiftUI使用 View 模型模式以两种不同方式打开 View