gpt4 book ai didi

ios - 在 Swift 类或结构中声明为静态的变量会发生什么

转载 作者:可可西里 更新时间:2023-11-01 00:08:34 24 4
gpt4 key购买 nike

我想了解静态变量在 Swift 中的工作原理。

在 swift 中将对象声明为静态变量时,静态变量将被初始化。

class StaticSample1{  
static let someVariable = "static variable string"
}

如果使用如下静态变量

class StaticSample2{
static let image1 = UIImage(name:"someimage")
}

someimage.png 存在于 iOS 应用程序的 Assets 中。

如果 image1 的尺寸很大,是否会对内存或性能产生影响。想知道是否有超过 1 个变量类似于 image1,让我们考虑以下

class StaticSample3{
static let image1 = UIImage(name:"someimage")
static let image2 = UIImage(name:"someimage")
static let image3 = UIImage(name:"someimage")
static let image4 = UIImage(name:"someimage")
static let image5 = UIImage(name:"someimage")
static let image6 = UIImage(name:"someimage")
static let image7 = UIImage(name:"someimage")
static let image8 = UIImage(name:"someimage")
static let image9 = UIImage(name:"someimage")
static let image10 = UIImage(name:"someimage")

}

iOS 应用程序的内存或性能是否会受到影响。

另外请说明,静态变量仅在第一次使用静态变量时加载到内存中,并将保留在内存中直到应用程序退出。

此外,我想了解 swift 中的工作对象如何。是不是和Objective C中的一样。

我想了解有关使用 swift 语言创建的对象/实例的工作原理。它们是否仍然存储在堆中,并且引用由堆栈维护。

静态变量会怎样?静态变量是否存储在堆栈中?

最佳答案

您基本上已经创建了一个名为 StaticSample.image1 的全局变量。无论您创建多少个 StaticSample 实例,这些变量都只有一个。该变量在程序第一次询问它的值时被初始化。

关于ios - 在 Swift 类或结构中声明为静态的变量会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35830287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com