Ich habe Array unsortedArray [AnyObject]. Ich habe drei struct-Modelle (Benachrichtigungsmodell, YouCard-Modell, Willkommensmodell) darin hinzugefügt. Alle diese drei Modelle enthalten den Parameter "time_stamp" im String-Format. Jetzt kann ich die Modelle nicht anhand von time_stamp sortieren.Wie sortieren Sie verschiedene Struct-Modelle in Array in swift?
Ich bin nicht mit schnellen Funktionen vertraut. Ich habe eine Lösung versucht, aber seine Arbeit nicht
0
A
Antwort
1
Das ist ein klassischer Fall ist ein Protokoll zu verwenden, vermeiden Sie so viel wie möglich Arrays als [AnyObject]
erklärt oder sogar [Any]
.
Erstellen Sie das Protokoll, alle Strukturen, die das Protokoll annehmen müssen
timestamp
protocol TimeStampable { var timestamp : TimeInterval { get } }
die
drei Klassen erstellen implementierenstruct NotificationCard : TimeStampable { var timestamp : TimeInterval = 34837465928 } struct YouCard : TimeStampable { var timestamp : TimeInterval = 67837465928 } struct WelcomeCard : TimeStampable { var timestamp : TimeInterval = 92837465928 }
Anstatt unspecified
[AnyObject]
das Array als[TimeStampable]
erklärenlet unsortedArray : [TimeStampable] = [YouCard(), WelcomeCard(), NotificationCard()]
Jetzt können Sie das Array sortieren
let res = unsortedArray.sorted{ $0.timestamp < $1.timestamp }
Wenn Sie andere gemeinsame Elemente und Funktionen verwenden, um sie auf die Protokollerklärung hinzufügen und setzen sie in den Strukturen und/oder ein Protokoll verwenden, Erweiterung.
Verwandte Themen
- 1. Wie multidimensionales Array in swift zu sortieren?
- 2. Sortieren Sie Protokolle in Swift?
- 3. So sortieren Sie in Swift
- 4. Verschiedene Strukturen in einem Array in Swift
- 5. Sortieren in swift 3.0
- 6. Swift, wie durch Schlüsselwerte Array Wörterbuch sortieren
- 7. Wie man Array schnell anhängen und sortieren in tableView swift
- 8. Wie zweidimensionales Array von Bereichen in swift sortieren?
- 9. Sortieren JavaScript-Array-Objekt durch verschiedene Schlüssel
- 10. wie Array in Swift
- 11. (Swift 3) Versuchen Sie, ein Array von Klassenobjekten nach Datum in swift 3 zu sortieren?
- 12. So sortieren Sie Elemente in einem Array
- 13. Array sortieren [[String: Beliebig]] alphabetisch in swift 3.0
- 14. Sortieren CoreData Ergebnisse mit NSPredate in Swift
- 15. Array-Daten durch verschiedene View Controller Swift
- 16. Array in Array Swift
- 17. Wie in Array in Swift
- 18. Ein Plist-Array für TableView in Swift sortieren
- 19. Array nach Zeichenfolgenwert (Gebietsschema) sortieren in Realm - Swift
- 20. Swift 2: Sound für verschiedene Bilder in Array spielen
- 21. Wie sortieren Sie normalerweise Elemente in Rails?
- 22. Swift 3 Sortieren großer Datenmengen in Arrays
- 23. Array nach anderem Array sortieren?
- 24. JSON-Antwort alphabetisch sortieren in Swift
- 25. Wie String-Array in Swift
- 26. Sortieren Sie einen Tabellenansicht Abschnitte in Swift 4 von einem Datum, das in diesem Array ist
- 27. Wie sortieren Sie ein Array in alphabetischer Reihenfolge?
- 28. wie man arc4random wählt 4 verschiedene Namen in swift
- 29. Wie kann ich ein Array basierend auf anderen Array-Positionen in Swift sortieren?
- 30. Sortieren Array Alphanumerisch Swift3
Sie können Elemente verschiedener Typen nicht mit '!' Vergleichen. Die Schließung kann mit den Gegenständen in umgekehrter Reihenfolge aufgerufen werden, die erste kann "NotificationCard" und die zweite "YouCard" sein. Warum erstellen Sie kein gemeinsames Protokoll für Karten und verwenden es anstelle von AnyObject? – Sulthan
Was ist das Problem, das Sie haben? Sie müssen viel mehr Informationen zeigen. – creeperspeak
Ich habe drei Strukturmodelle. Jedes Modell hat einen Timestamp-Parameter. Ich möchte diese Modelle anhand des Zeitstempels sortieren. – akshay