arrays - 如何在 Swift 中创建静态数组?

标签 arrays swift static singleton

我想在我的单例 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/

相关文章:

arrays - codeigniter 在 session 中传递数组并检索

arrays - 计算矩阵每一行中的非零元素

javascript - JQuery/JS 数组 - 循环代码帮助

swift - WebKitView占据整个屏幕

c++ - 跨 dll 使用静态类变量/函数

python - 在Python中创建(空格分隔的)文本文件的列(或行)数组

swift - 使用 Perfect 在多个服务器之间进行通信

swift - 使用适用于 iPad 应用程序的 Xcode,如何识别并突出显示大陆图像上的国家/地区(不在 MapKit 中)

java - 在java中实时将IO Process的值传递给另一个类

c - 在 typedef 结构上使用静态