App maken: ook jij kunt het leren!

 

de iOS Academie Forums

Forums - Producten van de iOS Academie - Het eBook: Apps bouwen met Swift: Closures 8.8.1

Sander  Op de eerste vier stappen van zijn/haar studiekaart scoort Sander 41%. Klokje06 okt 2015, 13:53
Avatar
Avatar
Berichten:34


Goedemiddag,

ik krijg de closures niet in de juiste volgorde geprint?

In het scherm rechts staat het keurig in alfabetisch volgorden en weer anders om maar het programma regeerd niet op mijn print opdracht.

ja hij print het wel maar dan weer gewoon aap, noot, mies.

wie kan mij helpen? Het het voorbeeld bestand al drie keer overgetypt en nagekeken. Grrrrrrrrrr

gr Sander. 

Reageer


AppChanger  Laurens heeft nog geen Studiekaart. Klokje06 okt 2015, 20:36
Avatar
Avatar
Berichten:301
Fans:13


Hallo Sander,

Het is normaal dat de print functie steeds het zelfde Array terug geeft.

De  "sort()" methode zorgt er voor dat er iets wordt gereturnd. 

Zo kan men een variable vullen met de gesorteerde elementen.

Maar de variable "onzeArray" wordt "niet" geweizigd. 

Je kan wel als volgt printen.

 

 

var onzeArray = [ "aap", "noot", "mies", "wim",

    "zus", "jet", "teun", "vuur",

    "gijs", "lam", "kees", "bok",

    "weide", "does", "hok", "duif",

    "schapen"]

 

print(onzeArray)

 

print("nSorteren...n")

 

var arrayANaarZ = onzeArray.sort(

    {

        print("($0) of ($1): ")

        if $0 < $1 {

            print("($0) komt eerst")

            return true

        }

        else {

            print("($1) komt eerst")

            return false

        }

})

 

print("n", arrayANaarZ)

 

print("nEn nu omgekeerd...n")

 

var arrayZNaarA = onzeArray.sort({

    if $0 > $1 {

        return true

        

 

}

    else {

        return false

    }

})

 

print(arrayZNaarA)

 

Hopelijk begrijp je het nu beter.

Indien er nog vragen zijn, shoot!

Met vriendelijke groeten,

Laurens

 

Reageer

Goed advies! 1 persoon vindt dit goed advies.

Peter  Peter heeft nog geen Studiekaart. Klokje06 okt 2015, 20:36
Avatar
Avatar
Berichten:3


Ik had juist hetzelfde probleem voor en was in het forum op zoek naar een antwoord...

Ook staat er op pagina 171 nog een foutieve code volgens mij: de 3 print lijnen moeten daar nog uit de closure gehaald worden (  print("($0) of ($1): ")   )

maar hoedanook, in de console verschijnt de array echter ongesorteerd terwijl hij inderdaad naast de lijn rechts wel gesorteerd verschijnt...

---> Bedankt Laurens, je antwoord kwam er terwijl ik aan het typen was... :-)

 

 

Reageer


Peter  Peter heeft nog geen Studiekaart. Klokje06 okt 2015, 20:51
Avatar
Avatar
Berichten:3


Zo kan het ook:

var onzeArray = [ "aap", "noot", "mies", "wim",
    "zus", "jet", "teun", "vuur",
    "gijs", "lam", "kees", "bok",
    "weide", "does", "hok", "duif",
    "schapen"]

print(onzeArray)

print("nSorteren...n")

onzeArray = onzeArray.sort(
    {
        print("($0) of ($1): ")
        if $0 < $1 {
            print("($0) komt eerst")
            return true
        }
        else {
            print("($1) komt eerst")
            return false
        }
}) 

print("n", onzeArray)

 

 

Reageer


Sander  Op de eerste vier stappen van zijn/haar studiekaart scoort Sander 41%. Klokje06 okt 2015, 21:55
Avatar
Avatar
Berichten:34


Goedemiddag,

ik krijg de closures niet in de juiste volgorde geprint?

In het scherm rechts ...

Laurens / Peter,

Thanks voor de antwoorden. Ik begrijp het nu. Het mooie is dat ik zelf ook al in die richting dacht. Begin het dus aardig te begrijpen.

Dit zou dus wel betekenen dat het verkeerd in het boek staat. Toch? 

Gr Sander. 

Reageer