Initilizing中,数组的索引

问题描述 投票:0回答:1

我创建具有自动索引类。我已经写了下面的代码工作,但包含了非常草率的做法,我一直没能解决。我在下面设计了一个简单的操场演示。我问这对提高我的代码和我的雨燕的知识。

请注意,我创建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   
swift
1个回答
1
投票

只要改变你的初始化函数

init(token: String, label: String) {
    self.index = IndexPairs.getUniqueIdentifier()
    self.token = token
    self.label = label
}

这对我的作品在操场

© www.soinside.com 2019 - 2024. All rights reserved.