私は以下のような列挙型と構造体を持っています。構造体の配列から結果を取得する方法
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
}
私は次のようにplayerInformationArray
を構築:
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)
私は次の配列のプレイヤー "シフト" についての情報を格納します。
var shiftDetails = [ShiftDetails]()
私は "に関する情報を取得選択された "プレーヤーをコレクションビューから次のように表示します。
let selectedPlayer = playerInformationArray[indexPath.row]
私は、次でshiftDetails
配列を更新:除外として
shiftDetails.append(ShiftDetails.init(player: selectedPlayer, timeOnIce: timerCounter, dateOnIce: Date()))
すべてが動作しますが、私は配列からデータを取得する方法を、苦労の理解を抱えています。例:
count
をプレーヤー1人につきshiftDetails
で取得するにはどうすればよいですか?
sum
をプレーヤーごとにtimeOnIce
で取得するにはどうすればよいですか?
ありがとうございます!
感謝を印刷しますあなたはロックスターです!!しかし、私は '(for player:Player)'のタイプミスが '(for selectedPlayer:Player) 'であると信じていますが、私は次のエラーを受け取ります:' Result values in'? : '式に不一致の型があります(_、_)'と '_'が付きます –
@PaulSメソッドのシグネチャの名前が正しいです。実際には、$ 1.player == selectedPlayer'の代わりに '$ 1.player == player'でなければなりません。明確化のために –
感謝します。それでも「結果の値」が返されていますか? : '式に不一致があります'(_、_)と_ _ –