我有这堂课:
class AClass {
var name = "Name"
var value = 0
static var A = AClass(name: "A", value: 1)
static var B = AClass(name: "B", value: 2)
}
我有一个返回名称A
和B
的函数,如何将A
和B
作为AClass
个实例与字符串{{ 1}}和A
,像这样?
B
更新:
我在实际项目中有很多类型属性,所以我正在寻找一种方便的方法来获取所有属性,而无需创建每个类型属性的值。
答案 0 :(得分:2)
class AClass {
var name = "Name"
var value = 0
static var A = AClass(name: "A", value: 1)
static var B = AClass(name: "B", value: 2)
init(name:String, value:NSInteger){
self.name = name
self.value = value
}
}
得到这样的话:
let aObj = AClass.A
let bObj = AClass.B
print(aObj.name)
print(bObj.name)
答案 1 :(得分:1)
试试这个:
class AClass
{
var name = "Name"
var value = 0
init(name : String, value : Int)
{
self.name = name
self.value = value
}
static var A = AClass(name: "A", value: 1)
static var B = AClass(name: "B", value: 2)
}
要将A和B作为AClass实例使用:
let objA = AClass.A
print(objA.name)
let objB = AClass.B
print(objB.name)
答案 2 :(得分:0)
我想这就是你要找的东西
class AClass {
var name = "Name"
var value = 0
static var dataDict = [String: AClass]()
init(name: String) {
self.name = name
}
static func someMethod(name: String) -> AClass {
if let obj = AClass.dataDict[name] {
return obj
} else {
AClass.dataDict[name] = AClass(name: name)
return AClass.dataDict[name]!
}
}
}
获取AClass的对象,如:
let obj = AClass.someMethod(stringReturnValue) // AClass.someMethod("A")
//这里如果已经在AClass.dataDict中使用此键存在AClass对象,那么它将返回该对象创建一个并将其存储在dataDict中。