0

My problem is that grouping functions doesn't work for me. What i did was :

import UIKit

struct Person
{
    let firstname : String

    let lastname : String

    let age : Int
}

class GroupingViewController: UIViewController {

    let people = [
                  Person(firstname: "Mabuto", lastname: "Cohen", age: 20),

                  Person(firstname: "Nagasta", lastname: "Bagamba", age: 21),

                  Person(firstname: "Embazala", lastname: "Levi", age: 22),

                  Person(firstname: "Musasabha", lastname: "Israel", age: 23),

                  Person(firstname: "Bambusto", lastname: "Yaakov", age: 24),

                  Person(firstname: "Zeus", lastname: "Jupiter", age: 25),

                  Person(firstname: "Berry", lastname: "Tzakala", age: 26),

                  Person(firstname: "Uzi", lastname: "Yenmale", age: 27),

                  Person(firstname: "Yudokulis", lastname: "Lifshi", age: 28),

                  Person(firstname: "Adolf", lastname: "Hitler", age: 29),

                  Person(firstname: "Johnny", lastname: "Jenkins", age: 30),

                  Person(firstname: "John", lastname: "Doe", age: 31),

                  Person(firstname: "Andrey", lastname: "Homo", age: 33),

                  Person(firstname: "Rupert", lastname: "Pupkin", age: 32),

                  Person(firstname: "Bentzi", lastname: "Navad", age: 34),

                  Person(firstname: "Shlukh", lastname: "Batahat", age: 35),

                  Person(firstname: "Motako", lastname: "Nambuto", age: 36),

                  Person(firstname: "Abahabusto", lastname: "Menashe", age: 37),

                  Person(firstname: "Benny", lastname: "Moos", age: 38),

                  Person(firstname: "Alex", lastname: "Tarzan", age: 39)

                  ]

    // how do we perform the grouping ? dictionaries ?

    let groupedDictionary = Dictionary(grouping: people, by: {$0["age"]!})


    var groupedPeople = [[Person]]()

    var keys = groupedDictionary.keys.sorted()

    keys.forEach {(key) in

    groupedPeople.append(groupedDictionary[key]!)

    }

    groupedPeople.forEach({

    $0.forEach({print($0)})

    })

I have 2 errors which go like that :

In
let groupedDictionary = Dictionary(grouping: people, by: {$0["age"]!}), i get the

error : "Cannot use instance member 'people' within property initializer; property initializers run before 'self' is available"

And in

keys.forEach {(key) in

    groupedPeople.append(groupedDictionary[key]!)

    }

I get the

error "Expeted declaration"

How to solve ?

Nisarg
  • 1,631
  • 6
  • 19
  • 31

0 Answers0