0
我正在寻找一种方式使用NSCountedSet
更类似于Swift
的方式(无论这意味着什么)。NSCountedSet枚举Swift
请考虑以下代码段,我基本上直接从Objective C
进行了翻译。我遍历集合中的每个符号(一个String
),获取其相应的计数,并在字典中查找该符号的值。然后,我将该值与计数相乘并将其添加到总计中。
var total = 0
for symbol in symbolSet {
let count = symbolSet.count(for: symbol)
let item = symbolDictionary[symbol as! String]
let value = item?.value
total+= (count * value!)
}
它的工作原理,但我有点担心的是解开建议Xcode
我。所以我正在尝试像这样做更多Swift
,以便在没有所有解包的情况下更安全。
我开始是这样的:
symbolSet.enumerated().map { item, count in
print(item)
print(count)
}
但这里算不是实际数量,但它是一个枚举索引。
我该如何向前迈进呢?
这看起来非常有前途,我就可以测试这个今天晚些时候。 – Koen
@Koen乐意帮忙。考虑在下次发布一个问题时(例如,我的Item定义和我的symbolDictionary和SymbolSet实例化,我会提供一个[minimal,complete and verifiable example](http://stackoverflow.com/help/mcve)因为这样可以让未来的回答者更容易帮助你,这反过来会增加变化,你会得到satiesfactory答案:) – dfri
你的例子是非常接近我的情况。只有'value'实际上是一个由两个'Double'属性构成的结构,因此经过一些头疼的事情后,我在'.reduce'行的开始和结尾用'零结构'代替了'Double's到'0'。所有的作品! – Koen