我想在我的单例 GameManager 类中创建一个静态数组。目标是用数据库中即将出现的问题填充这个数组,并从其他类(class)联系这些问题。
这是问题结构:
struct Question{
let levelId : Int32
let categoryId : Int32
let id : Int32
let question : String
let fieldA : String
let fieldB : String
let fieldC : String
let fieldD : String
let answer : String
init( categoryId : Int32, levelId: Int32,id : Int32,question : String,fieldA : String,fieldB : String,fieldC : String,fieldD : String,answer : String )
{
self.categoryId = categoryId
self.levelId=levelId
self.id=id
self.question=question
self.fieldA=fieldA
self.fieldB=fieldB
self.fieldC=fieldC
self.fieldD=fieldD
self.answer=answer
}
}
这是单例类
import Foundation
class GameManager{
var Questions = [Question]()
var categoryID = 0
var levelID = 0
var i = 0
{
self.Questions = Questions[Question]// I create the static Question Array here, but it does not work
self.categoryId = categoryId
self.levelId=levelId
self.id=id
self.question=question
self.fieldA=fieldA
self.fieldB=fieldB
self.fieldC=fieldC
self.fieldD=fieldD
self.answer=answer
}
static let sharedInstance = GameManager()
}
最佳答案
您应该在 GameManager
类的构造函数中进行初始化!
private init() {
// do your initialization here...
}
初始化程序被声明为私有(private)
,因为您显然不希望其他代码创建单例的另一个实例。
此外,由于许多单例(例如 UIApplication.sharedApplication
)在 Swift 3 中已重命名为 shared
,因此您可能应该重命名 sharedInstance
也可以共享
。
关于arrays - 如何在 Swift 中创建静态数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40113385/