zweidimensionales Array an Funktion übergeben

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • zweidimensionales Array an Funktion übergeben

    Guten Abend,

    schon wieder hänge ich an einem Swift Problem fest. Hier brauchte ich mal Hilfe von jemanden der das schon mal mit zweidimensionalen Arrays in Swift gearbeitet hat.
    Ich hänge jetzt schon wieder seit Tagen an dem Thema, dazu habe ich die sehr spärliche Dokumentation von Apple mehrfach gelesen, aber nichts von dem funktioniert wirklich, es gibt dann irgendwelche Folgeprobleme

    Xcode meckert endlich nicht mehr, wenn ich das Array so in der Funktion definiere,

    Quellcode

    1. func fSchrCsv (_ EinArray: inout Array<Array<String>> ) -> Bool {
    PS das inout kann ich mir auch sparen, war einfach ein Versuch ob es dann geht. also eigentlich überflüssig.

    aber das wirkliche Problem tritt dann auf, wenn ich das Array in der Funktion ansprechen will:


    Quellcode

    1. while Ind1 < maxInd {
    2. Ind2 = 0
    3. while Ind2 < maxInd2 {
    4. einChr = xArray[Ind1,Ind2]
    dann meckert Xcode rum : erste rote Fehlermeldung hinter der Zuweisung zur einCHR: Cannot assign value of type 'Array<String>' to type 'String' damit kommt gleich eine zweite rote Fehlermeldung : extra argument in call
    dabei ist der zweite Index also Ind2 rot unterstrichen, ich vermute also, das Xcode das gar nicht als zweidimensionales Array erkannt hat oder?

    also der Versuch mit Array[[String]] zu definieren bringt das gleiche Ergebnis. ?(


    Hat das schon mal einer von euch versucht gemacht, eine Idee?

    Vielen Dank im Voraus
  • Versuch es mal mit

    Quellcode

    1. einChr = xArray[Ind1][Ind2]



    Quellcode

    1. var array = Array<Array<String>>()
    2. array = [["Eins", "Zwei", "Drei"], ["A", "B", "C"]]
    3. for i in 0 ..< array.count {
    4. for j in 0 ..< array[0].count {
    5. print(array[i][j])
    6. }
    7. }
    Geht auch:


    Quellcode

    1. var array = [[String]]()

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Tecalto ()

  • Danke Tecalto
    es ist wie immer, manchmal hilft allein die Kommunikation mit anderen. Den Fehler habe ich erst durch deine Antwort gesehen, es lag nicht an der Funktionsübergabe, sondern einzig und allein an der Indizierung, dumm hab ich schon mindestens 10 mal im Programm richtig gemacht und sehe jetzt erst das ich es da falsch gemacht habe:

    Quellcode

    1. einChr = xArray[Ind1][Ind2]

    ist natürlich richtig und nicht wie ich es gemacht hatte:

    Quellcode

    1. einChr = xArray[Ind1,Ind2]
    so was blödes der auch, danke danke, allein habe ich es nicht gesehen.


    Viele Grüße und ein schönes WE