Ich möchte damit beginnen, zu sagen, dass ich ein Anfänger in der Codierung in iOS bin (Swift 2.0). Ich habe also ein Array, das ich zuerst mit dem häufigsten Element und zuletzt mit dem kleinsten Element sortieren möchte. Ich möchte das dann in eine UITableView einfügen, wobei der häufigste Eintrag oben und der am wenigsten häufige unten angezeigt wird. Also, wenn ich einen Artikel namens "Food" im Array habe und er 3 Mal erscheint, sollte er über einem Gegenstand namens "Candy" stehen, der 2 Mal erscheint. Vielen Dank!Häufigstes Array-Element in tableView
EDIT: Es tut mir leid für eine so eine schlechte Frage, und wie ich schon sagte, ich bin ein Anfänger bei der Programmierung, so bin ich nicht der beste zu erklären meine Situation entweder. Aber ich werde versuchen, meine Situation diesmal besser zu beschreiben. Zuerst wollte ich mein Array mit dem häufigsten Element zuerst und das zweithäufigste Element danach sortieren und so weiter. Die Antwort, die von John zur Verfügung gestellt wurde mir geholfen, das zu tun, und danach habe ich es geschafft in eine Tableview wie folgt zu setzen:
var counts : Dictionary<String, Int> = Dictionary<String, Int>()
override func viewDidLoad() {
for (_, value) in prioLista.enumerate() {
if let count = counts[value] {
counts[value] = count + 1
}
else {
counts[value] = 1
}
}
prioLista.sortInPlace { (first, second) -> Bool in
let firstCount = counts[first]
let secondCount = counts[second]
return firstCount > secondCount
}
navigationItem.title = "Spara"
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return prioLista.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellster = tableView.dequeueReusableCellWithIdentifier("cellster")
cellster?.textLabel?.text = prioLista[indexPath.row]
return cellster!
}
Die Variable prioLista, die in dem Code enthalten ist, ist ein Array aus einer anderen Datei. Per Knopfdruck können Sie Strings hinzufügen.
My tableView after sorting elements after most common
Also das ist, wo ich jetzt bin, wie die Bildansichten. Der TableView sortiert die Elemente genau so, wie ich es wollte. Ich möchte jedoch nur eine Zeile pro Objekt haben. Wenn das Array also mehr "Mat" als "Godis" enthält, möchte ich immer noch, dass "Mat" über "Godis" steht, aber ich möchte, dass sie jeweils eine Zeile aufnehmen. Ab sofort zeigt das TableView jedes einzelne Element, das ich in meinem Array habe, und stattdessen möchte ich, dass es Duplikate entfernt, aber immer noch die gängigsten auf die weniger gebräuchlichen setzen. Ich weiß, dass es merkwürdig klingen mag, dass ich die Einzelteile entfernen möchte, aber immer noch die von John zur Verfügung gestellte Funktion verwende, aber wenn es eine Weise gibt, würde ich so glücklich sein.
Also jetzt zusammenzufassen, was ich eigentlich will, also mache ich das so klar wie möglich; In dem Bild, das ich verlinkt habe, sind meine Objekte nach ihrer Häufigkeit sortiert, und ich frage mich, ob es eine Möglichkeit gibt, nur eines der gleichen Objekte anzuzeigen, aber das Array auf diese Weise sortiert zu haben.
erste Reihe: Mat zweite Reihe: Godis
im
TableviewIch hoffe, dass ich klar genug war, und nur so, wenn es mehr „Mat“ als „Godis“ ist, soll es als angezeigt werden Zur Erinnerung, ich bin nur ein Anfänger, der versucht zu programmieren lernen :)
Bitte beachten Sie, dass Sie hier keine vollständige Antwort erwarten können. Bitte beschreibe, wie viel du getan hast und wo du steckst. –