Я создаю класс с автоматической индексацией.Я написал код ниже, который работает, но содержит очень небрежный подход, который я не смог решить.Я разработал простую демонстрацию игровой площадки ниже.Я прошу это улучшить мой код и мои знания Swift.
Обратите внимание, что я создаю массив IndexPairs под названием tokenParts.Индекс добавляется в класс с помощью функции "getUniqueIdentifier ()".Как используется ниже, это работает, но я не чувствую, что использую это правильно.
Я добавляю в массив оператор «tokenParts.append (...». В этом выражении у меня есть «index: 1», потому что Swift говорит, что у меня должно быть что-то для индекса. Это назначение игнорируется,но я не могу определить, как удалить этот параметр в операторе добавления.
Я уверен, что есть лучший способ.
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