誰かがこの問題を解決する方法について正しい方向に私を向けることができますか?
以下の構造の値を使用してテーブルセルを作成しています。セルが作成され、作成時までにデータがセルに表示されます。これは正常に機能します。
問題は、一部のセルが同じ名前であり、strucデータのセルごとに個別のIDを持っていることですが、ユーザーは、複製内で最初に作成された複製の1つを知る必要があります。サブナンバーのようなものです。
例:1:apple -1、2:pear -1、3:apple -2
1(すべてのセル内の位置)-Apple(セルの名前)-1(appleという名前のセルの数に基づく値)
私が作成したfuncidName()は、名前の出現回数を示していますが、データが上記のように表示されるように、これをどのように分解できますか?
struct Data {
var id: Int
var name: String
var color: String
var time: TimeInterval
var sessionId: Int
var userId: Int
}
func idName () {
let idElement = elements //another variable is used to grab the Array
var counts: [String: Int] = [:]
var idValue: Int
for id in idElement {
counts[id.name] = (counts[id.name] ?? 0) + 1
for (key, value) in counts {
print("\(key) occurs \(value) time(s)")
}
}
}
特定の名前の出現を示すnameCounterプロパティをデータに追加しました。このような -
struct Data1 {
var id: Int
var name: String
var nameCOunter: Int? = 1
init(id: Int, name: String) {
self.id = id
self.name = name
}
static func addTestData() ->[Data1] {
var arr = [Data1]()
let model = Data1(id: 1, name: "apple")
let model1 = Data1(id: 2, name: "peer")
let model2 = Data1(id: 3, name: "apple")
let model3 = Data1(id: 4, name: "orange")
let model4 = Data1(id: 5, name: "grape")
let model5 = Data1(id: 6, name: "peer")
let model6 = Data1(id: 7, name: "apple")
arr = [model,model1,model2,model3,model4,model5,model6]
return arr
}
}
func idName() {
let idElement = Data1.addTestData()
var countedElement = [Data1]()
var nameArr = [String]()
for var dataModel in idElement {
nameArr.append(dataModel.name)
let count = nameArr.filter{$0 == dataModel.name}.count
dataModel.nameCOunter = count
countedElement.append(dataModel)
}
print(countedElement)
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加