在Swift中使用单例(内部包含结构的类)的正确方法
我想了解哪种是构建代码的正确方式。我创建了一个用于视频处理(检测静默)的单例类,并将其处理输出(静默时间戳和其他信息)存储为结构。由于这应该是整个程序中的一个引用,所以我使用了一个单实例模式,因为我将在这之后运行一些多线程任务,并希望该类有一个单一的真实来源在Swift中使用单例(内部包含结构的类)的正确方法,swift,Swift,我想了解哪种是构建代码的正确方式。我创建了一个用于视频处理(检测静默)的单例类,并将其处理输出(静默时间戳和其他信息)存储为结构。由于这应该是整个程序中的一个引用,所以我使用了一个单实例模式,因为我将在这之后运行一些多线程任务,并希望该类有一个单一的真实来源 class SilenceDetector { static let shared = SilenceDetector() // Singleton-pattern // <-- should I init it? f
class SilenceDetector {
static let shared = SilenceDetector() // Singleton-pattern
// <-- should I init it?
func detectSilence(videoURL: URL) -> SilencesInfo { ... }
private struct Silence {...}
struct SilencesInfo { // <-- Should I use a Singleton-class?
// here I run different functions with Silence struct
...
类沉默检测器{
静态let shared=沉默检测器()//单例模式
//沉默信息{…}
私有结构静默{…}
结构沉默信息{/使用单例模式没有合适的方法。它一直是一种黑客行为,但被SwiftUI完全淘汰了
无论您是否使用SwiftUI视图,您的SilenceDetector都应该是。默认情况下,所有内部类型都是静态的。即使您更改为类,也不能使用SilenceDetector.shared.SilenceInfo
。也许您希望SilenceDetector
保存SilenceInfo
的实例?使用En仍然是一种好的做法吗大型非SwiftUI/视图类中的环境?我说是的,因为我不期望UIKit能够获得自己的标准化环境,比如解决方案。