我创建具有自动索引类。我已经写了下面的代码工作,但包含了非常草率的做法,我一直没能解决。我在下面设计了一个简单的操场演示。我问这对提高我的代码和我的雨燕的知识。
请注意,我创建IndexPairs称为tokenParts的数组。该指数与FUNC“getUniqueIdentifier()”的类被添加。作为使用下面它的工作原理,但我不觉得我正确使用此。
我加入了声明数组“tokenParts.append(...”在此语句我有“的指标:1。”因为斯威夫特说,我必须有东西在里面索引该分配被忽略,但我不能确定如何除去在附加声明中的参数。
我敢肯定有一个更好的办法。
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
只要改变你的初始化函数
init(token: String, label: String) {
self.index = IndexPairs.getUniqueIdentifier()
self.token = token
self.label = label
}
这对我的作品在操场