ios - 需要对单例实例进行说明,因为它确实具有实例化到同一类的静态属性
问题描述
testScore(在下面的 SandwichStore 类的类定义中给出)如何是一个单例实例,因为它确实具有实例化到同一个类的静态属性?
我是 SwiftUI 的新手,对 Swift 还算满意。当我与 WWDC SwiftUI 视频教程一起编写代码时,我无法理解 testScore 在这里如何成为单例实例?为什么它没有一个共享的静态属性来实例化 API 类中的类?
import Foundation
class SandwichStore {
var sandwiches: [Sandwich]
init(sandwiches:[Sandwich] = []) {
self.sandwiches = sandwiches
}
let testScore = SandwichStore(sandwiches: testData)
}
class API
{
static let shared = API()
var isRequestPending = false
private init() { }
}
解决方案
如果您仔细查看 WWDC 会话视频中的代码,您会发现它testStore
超出了类定义。
实际代码是:
class SandwichStore {
var sandwiches: [Sandwich]
init(sandwiches:[Sandwich] = []) {
self.sandwiches = sandwiches
}
}
let testStore = SandwichStore(sandwiches: testData)
尽管演示者说,testStore
它不是一个单例,它实际上是一个全局常量。主持人可能只是误会了。
如果SandwichStore
采用单例模式,则无法实例化运行应用程序和测试商店所需的商店。
单例是一个类的实例,因此全局最多可以保存对单例实例的引用。
推荐阅读
- javascript - Graphql - 从生成的 JSON 文件创建模式
- sql - 触发器禁止向表的列插入负数
- shell - 变量中的命令不与文件名中的空白一起运行
- c# - 在 xamarin android 中播放受密码保护的 mp3 歌曲
- scala - scala 未来 firstcompletedof 的超时
- hyperledger-fabric - Hyperledger Fabric 分类帐文件和 composer-rest-server 文件
- android - 你是如何使用 exoplayer 提取 ID3 标签元数据的?你能分享你的代码吗?
- java - 根据语言环境输出日期间
- if-statement - VHDL中的计数器内的if语句
- intellij-idea - 我如何获得 PsiMethodCallExpression 对象类型?