使用SwiftUI,注入到MainApp()视图(WindowGroup)中的环境对象将保留所有数据,直到应用程序完全关闭。(如果你把应用程序打开在后台,数据将被保留)如果我的理解是正确的,这难道不是一种基本的缓存吗?只有当应用程序完全关闭时,数据才会被保留和销毁,这与NSCache是一样的。环境对象的寿命就是这样工作的吗?
发布于 2022-06-01 03:31:39
说大也大吧。如果环境存在(在这种情况下,只要WindowGroup存在,环境对象就应该存在)。从这个意义上说,这是一个“全球性”。
但是,除非你做一些不寻常的事情,否则这个物体就会一直存在。它会一直占用你的记忆。
当系统存在内存压力时,NSCache实现了许多旨在动态释放内存的行为。环境部将不会实施这些措施。
NSCache只是一个对象,没有任何继承可以使它作为全局对象运行--除非您将其存储在全局(静态)变量中。
您可以在SwiftUI环境中的任何地方放置缓存,但在我看来,它并不特别像NSCache。
https://stackoverflow.com/questions/72452931
复制相似问题