Ich habe eine Enum und Struct, die wie folgt aussieht.So erhalten Sie Ergebnisse von Struct in Array
enum Position: String {
case lw = "Left Wing"
case rw = "Right Wing"
case c = "Centre"
case d = "Defense"
case g = "Goalie"
}
struct PlayerInformation {
let firstName: String
let lastName: String
let position: Position
let number: Int
}
struct ShiftDetails {
let player: PlayerInformation
var timeOnIce: Int
var dateOnIce: Date
}
Ich baue die playerInformationArray
mit dem folgenden:
var playerInformationArray = [PlayerInformation]()
let sidneyCrosby = PlayerInformation.init(firstName: "Sidney", lastName: "Crosby", position: Position.c, number: 87)
let alexOvechkin = PlayerInformation.init(firstName: "Alex", lastName: "Ovechkin", position: Position.lw, number: 8)
let patrickKane = PlayerInformation.init(firstName: "Patrick", lastName: "Kane", position: Position.rw, number: 88)
playerInformationArray.append(sidneyCrosby)
playerInformationArray.append(alexOvechkin)
playerInformationArray.append(patrickKane)
Ich speichere Informationen zu einem Spieler "shift" in der folgenden Anordnung:
var shiftDetails = [ShiftDetails]()
ich die Informationen über die "abrufen "Player aus einer Sammlungsansicht mit den folgenden Optionen ausgewählt:
let selectedPlayer = playerInformationArray[indexPath.row]
ich dann aktualisieren, um die shiftDetails
Array mit den folgenden:
shiftDetails.append(ShiftDetails.init(player: selectedPlayer, timeOnIce: timerCounter, dateOnIce: Date()))
Alles funktioniert wie ausgenommen, aber ich habe eine harte Zeit Verständnis haben, wie Daten aus den Arrays abzurufen. Zum Beispiel:
Wie würde ich die count
von shiftDetails
pro Spieler abrufen?
Wie würde ich die sum
von timeOnIce
pro Spieler abrufen?
Danke!
Dank druckt Du bist ein Rockstar! Aber ich glaube, Sie haben einen Tippfehler in '(für Spieler: Spieler)' sollte sein '(für selectedPlayer: Player)' aber ich bekomme den folgenden Fehler: 'Ergebniswerte in '? : 'Ausdruck hat nicht übereinstimmende Typen' (_, _) 'und' _'' –
@PaulS Die Benennung der Methodensignatur war korrekt. Es sollte eigentlich "$ 1.player == player" anstelle von "$ 1.player == selectedPlayer" innerhalb der Schließung sein. –
danke für die Klarstellung. es gibt immer noch 'Ergebniswerte in' zurück? : 'Ausdruck haben nicht übereinstimmende Typen' (_, _) 'und' _'' –