gpt4 book ai didi

ios - 让全局变量不懒惰

转载 作者:行者123 更新时间:2023-11-29 01:02:45 24 4
gpt4 key购买 nike

我正在构建一个 library在 Swift 中,它有一个全局变量(全局变量会自动惰性初始化)。初始化这个变量大约需要一秒钟。我的问题是,我想在应用程序加载时初始化变量,这样用户就不必稍后等待。我目前的做法是:

My ViewController:

override func viewDidLoad() {

...

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), {
let _ = Foo()
})
}

My Framework File:

let myGlobalVariable = bar()

class Foo {
public init() {
myGlobalVariable
}

....

}

但这种方法并不像它是一种快速的方法那样无缝。如何以正确的方式初始化变量?

谢谢

最佳答案

没有快速的方法可以“何时”在框架中初始化全局变量,这取决于框架的流程,在使用框架之前不会调用框架中的任何内容,没有“FrameworkDidLaunch”方法,它是一个“静态”代码,就像任何其他类一样,但在另一个模块中,它甚至可以只是一组资源......

如果你想确保有人按照你的意图使用你的框架,那么将它写在文档中和/或添加一个必须在使用前调用的静态方法,如“MyFramwork.startMyFramework()”,或者如果你需要来自用户的一些信息,如 API key “MyFramwork.setApiKey(_:)”,并使用它来初始化全局变量并断言是否调用了此方法。

关于ios - 让全局变量不懒惰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36822143/

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