我有一个自定义对象数组,想知道如何识别哪些对象是重复的。我知道如何删除副本,但这不是我追求的功能。我在用斯威夫特2。
例子:
var movies: [Movie] = ["Batman v Superman: Dawn of Justice", "Batman v Superman: Dawn of Justice", "Deadpool"," "Deadpool", "Hardcore Henry", "Jason Bourne", "Jurassic World"]
所以我想展示一个表视图,上面列出了电影,但是突出显示了“蝙蝠侠”和“死水坑”。
为了更清楚地了解我想要实现的目标,请看屏幕截图。我有两个用户在上一个视图控制器中选择的电影列表。我想在表格视图中显示选定的电影。我想特别展示一下是否有两个人都选择的电影。
最佳答案
根据你的评论,我用字符串数组做了一个简单的例子,可以很容易地转换成你的电影类型:
let movies = ["Batman","Batman","Flash","Avengers"]
var movieCounts:[String:Int] = [:]
for movie in movies {
movieCounts[movie] = (movieCounts[movie] ?? 0) + 1
}
你可以这样测试:
for (key, value) in movieCounts {
print("\(key) has been selected \(value) time/s")
}