如何在swift中创建Array
类型的自定义类?
准确地说,我有一个类型为Car
的自定义类,现在我想创建一个数组为Car
s的单例(因为我想能够从我的应用程序中的任何地方访问它)。
我的解决方法是将我的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()
}