Klasse erben

Hallo,
jetzt wollte ich nach längerer Zeit mal wieder Fahrt aufnehmen, und schon stockt’s bei diesem vermeintlich einfachen Beispiel:


Wo ist der Haken?

Hallo Oliver,
iOSMobileTableDataSource ist ein interface und keine Klasse. Du muss in Deiner Klasse die Methoden des Interfaces implementieren.

Interface ist der Knopf unter Super, diese Methoden sehe ich schon im Screenshot.
Irgendwie ist Super falsch.
https://documentation.xojo.com/api/ios/iosmobiletabledatasource.html

Das Interface hatte ich gesetzt. Bleibt Super bei der Klasse leer?
Wenn ich New in RowData weglasse verschwindet der Constructor-Fehler. Aber die Table ist natürlich leer beim Ausführen.
Der ClassName-Fehler und die Warnungen sind mir nicht klar. :thinking:




Ja, Super bleibt leer. Deine “Class1” muss alle Methoden implementieren die in dem Interface gelistet sind (RowCount, SelectionCount etc.). Das Konzept wird hier erklärt.

Hallo Maximilian,
man kriegt doch fast alles vorgegeben beim Ankreuzen des Interfaces. Vier Methoden wurden angelegt im Interface iOSMobileDataSource.
Ich komme noch nicht dahinter, warum der Constructor geschützt ist.

In der Dokumentation heisst es:
You cannot directly create an MobileTableCellData object using its constructor. Instead use the iOSMobileTable.CreateCell or iOSMobileTable.CreateCustomCell methods.

Damit habe ich heute auch rumprobiert, hatte aber auch noch Fehler. Gucke morgen weiter.
Danke vorab.

So.
Es fehlte ein Property (hier Namen) mit dem Typ meiner Class1.
Die Methoden RowCount, RowData, SectionCount und SectionTitle wurden vorher ignoriert.

Namen = New Class1
Table1.DataSource = Namen

Funktionierte nicht:
Var ds As New Class1
Table1.DataSource = ds

Danke für eure Unterstützung!
Weiter geht’s

Oliver