我正在尝试创建一个类方法,它可以选择返回该类的一个(已实例化的)实例。
我正在考虑将实例化类的内存地址写入用户默认键,然后尝试返回该地址处的对象,但我不确定这是否是正确的方法,也不确定如何实现。
class MyClass {
let myProperty: String
required init(myProperty: String) {
self.myProperty = myProperty
}
class func currentClass() -> MyClass? {
return nil
}
}
let aNewClass = MyClass(myProperty: "Hi")
// Should return the aNewClass instance:
MyClass.currentClass()
最佳答案
您需要创建一个静态属性,将已创建的成员分配给:
class MyClass {
let myProperty: String
private static var instance : MyClass?
required init(myProperty: String) {
self.myProperty = myProperty
if MyClass.instance == nil {
MyClass.instance = self
}
}
class func currentClass() -> MyClass? {
return MyClass.instance
}
}
let aNewClass = MyClass(myProperty: "Hi")
这与单例模式有点类似,您总是可以从类中检索相同的对象。您也可以删除赋值周围的
if
,如果这样更适合您的需要,则类始终返回最新的实例。关于swift - 从类方法中查找类的实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34664835/