如何在swift中创建Array类型的自定义类?
准确地说,我有一个类型为Car的自定义类,现在我想创建一个数组为Cars的单例(因为我想能够从我的应用程序中的任何地方访问它)。
我的解决方法是将我的singleton定义为NSMutableArray。但我发现这会导致我的代码中出现一些问题。所以我想把它定义为swift数组。
我该怎么做?
我现在的代码是:

class MyCars: NSMutableArray {
    class var sharedInstance: MyCars {
        struct Static {
            static var instance: MyCars?
            static var token: dispatch_once_t = 0
        }

        dispatch_once(&Static.token) {
            Static.instance = MyCars()
        }

        return Static.instance!
    }
}

最佳答案

要创建Car的单例数组,不需要创建一个新类-只需要一个带有静态成员的结构:

struct MyCars {
    static var sharedInstance = Array<Car>()
}

注意sharedInstance初始化一次-阅读this answer了解更多信息
附录
如果您想使用MyCars来引用Car的数组,您只需定义一个typealias并为包含singleton的结构使用不同的名称,例如:
typealias MyCars = Array<Car>

struct Singleton {
    static var myCars = MyCars()
}

10-08 16:55