我正在创建一个具有自动索引的类。我已经在下面编写了可行的代码,但其中包含一种我无法解决的非常草率的方法。我在下面设计了一个简单的游乐场演示。我要这是为了改善我的代码和对Swift的了解。
注意,我正在创建一个称为tokenParts的IndexPairs数组。索引使用功能“ getUniqueIdentifier()”添加到类中。如下所述,它可以正常工作,但我感觉我没有正确使用它。
我使用语句“ tokenParts.append(...”)添加到数组中,在该语句中,我具有“ index:1”,因为Swift表示我必须在其中包含用于索引的内容。此分配将被忽略,但是我不能确定如何在append语句中删除此参数。
我敢肯定有更好的方法。
class IndexPairs
{
var index: Int
var token: String
var label: String
private static var identifierFactory = -1
private static func getUniqueIdentifier() -> Int {
identifierFactory += 1
return identifierFactory
}
init(index: Int, token: String, label: String) {
self.index = IndexPairs.getUniqueIdentifier()
self.token = token
self.label = label
}
}
var tokenParts: [IndexPairs] = []
for i in 0...4 {
tokenParts.append(IndexPairs( index: 1, token : "token"+String(i), label: "label"+String(i))) //index: 1 -- works
}
for i in 0...4 {
print("\(tokenParts[i].index) \(tokenParts[i].token) \(tokenParts[i].label)")
}
打印循环显示以下内容,因此可以正常工作。打印:
0 token0 label0
1 token1 label1
2 token2 label2
3 token3 label3
4 token4 label4
答案 0 :(得分:1)
只需将您的init函数更改为
init(token: String, label: String) {
self.index = IndexPairs.getUniqueIdentifier()
self.token = token
self.label = label
}
这在操场上对我有用