【问题标题】:How can I create a static array in Swift?如何在 Swift 中创建静态数组?
【发布时间】:2016-10-18 16:21:56
【问题描述】:

我想在我的单例 GameManager 类中创建一个静态数组。 Aim 正在用来自数据库的即将出现的问题来填充这个数组,并从其他类中找到它们。

这是问题结构:

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()
}

【问题讨论】:

    标签: arrays swift static singleton


    【解决方案1】:

    您应该在GameManager 类的构造函数中进行初始化!

    private init() {
        // do your initialization here...
    }
    

    初始化器被声明为private,因为您显然不希望其他代码创建另一个单例实例。

    此外,由于很多像 UIApplication.sharedApplication 这样的单例在 Swift 3 中已重命名为 shared,因此您可能也应该将 sharedInstance 重命名为 shared

    【讨论】:

    • 在游戏管理器中;Questions = Questions[Question]() 表示使用了未解决的标识符“问题”
    • 这不是初始化数组的方式。使用Questions = [Question]()。 @pflove
    猜你喜欢
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 2018-12-24
    • 1970-01-01
    相关资源
    最近更新 更多