Array mit n Tupel-Elemente befüllen

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

  • Array mit n Tupel-Elemente befüllen

    Hallo zusammen,

    ich hänge seit etlichen Stunden an einem Konstrukt, bei dem ich den Fehler nicht erkenne.
    Ich habe ein Array "metersObj" mit der Länge n, dabei ist jedes Element ein Tupel mit mehreren Key-Value Paaren. Unter diesen Tupeln gibt es auch ein weiteres Array "deviceElements" mit Tupeln.
    Bisher fülle ich also das innere Array "deviceElements" mit Werten und möchte es dem Array "meterObj" mit dem passenden Tupel-Schlüssel übergeben.

    Jedoch erhalte ich die Fehlermeldung: 'Int' ist not convertible to T

    anbei habe ich das Projekt gekürzt.

    Was mache ich falsch?


    Quellcode

    1. // Array metersObj
    2. var metersObj: [(lastRegistObj: (division: String, meterDevice: String, deviceElements: [(register: String, lastReadingDate: String, lastNumber: String, registerType: String, lastNumberUnit: String, obisCode: String)]), newRegistObj: (meterReadingReason: String, deviceElements: [(register: String, dateObj: (permission: String, date: String), registerType: String, deviceID: String, numberObj: (preNumber: String, sucNumber: String, numberUnit: String), obisCode: String)])
    3. )] = []
    4. // Array deviceElements
    5. var deviceElementsLast: [(register: String, lastReadingDate: String, lastNumber: String, registerType: String, lastNumberUnit: String, obisCode: String)] = []
    6. //Array deviceElements wird erfolgreich in einer Schleife befüllt
    7. ...
    8. deviceElementsLast.append(register: register, lastReadingDate: lastReadingDate, lastNumber: lastNumber, registerType: registerType, lastNumberUnit: lastNumberUnit, obisCode: obisCode)
    9. ...
    10. //außerhalb der inneren Schleife weiße ich Array "deviceElements" dem Array "metersObj" zu und hier ist der Fehler
    11. metersObj.append(lastRegistObj: (division: lastRegDivision, meterDevice: lastRegMeterDevice, deviceElements: deviceElementsLast), newRegistObj: (meterReadingReason: newRegReason, deviceElements: deviceElementsNew))
    12. //Gegenkonstrukt: Wenn diese Konstellation vorliegt, tritt kein Fehler auf
    13. metersObj.append(lastRegistObj: (division: String(), meterDevice: String(), deviceElements: [(register: String(), lastReadingDate: String(), lastNumber: String(), registerType: String(), lastNumberUnit: String(), obisCode: String())]), newRegistObj: (meterReadingReason: String(), deviceElements: [(register: String(), dateObj: (permission: String(), date: String()), registerType: String(), deviceID: String(), numberObj: (preNumber: String(), sucNumber: String(), numberUnit: String()), obisCode: String())]))
    Alles anzeigen
    lernen, lernen, lernen :)
  • imoney91 schrieb:

    Was mache ich falsch?
    Meiner Meinung nach ist dein größter Fehler, dass du versuchst Klassen und/oder Strukturen durch Tuples zu ersetzen. Dafür sind Tuples nicht gedacht:

    The Swift Programming Language schrieb:

    NOTE
    Tuples are useful for temporary groups of related values. They are not suited to the creation of complex data structures. If your data structure is likely to persist beyond a temporary scope, model it as a class or structure, rather than as a tuple. For more information, see Classes and Structures.
    An deinem Code sieht man ja auch schön warum. Lesbarer Code sieht anders aus.
  • Naja, ein Moderator oder dergl. könnte Themen in das richtige Forum verschieben. Ich kenn das as anderen Foren.
    Und ich bin gegen irgendwelche Sanktionen wenn jemand ins falsche Forum schreibt. Kenn ich auch aus anderen Foren.

    Chris
    Man macht einfach solange irgendwelche Dinge, bis man tot ist.
    Und dann bekommen die anderen Kuchen.
  • Thyraz schrieb:

    Dann machen wir eben ein großes Forum für alles. :P
    Ich habe in der Tat schon über eine Forensoftware nachgedacht, die gar nicht mit Foren, Unterforen, Threads arbeitet, sondern die Beiträge vielfach verknüpft.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Ich nutze die Unterteilung fast überhaupt nicht. Anstatt der Foren fände ich Kategorien sinnvoller, in die der Autor seinen Beitrag einordnen kann. Dann kann ein Beitrag beispielsweise den Kategorien Swift, iOS und Tischkante zugeordnet werden. In der Anzeige und Suche kann man dann natürlich nach Kategorien filtern.
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:

    Dann kann ein Beitrag beispielsweise den Kategorien Swift, iOS und Tischkante zugeordnet werden.
    Was denn, schon wieder Hunger?
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P