Hallo,
ich habe eine Subclass die von UIScrollView abgeleitet ist.
Die neue Klasse soll ein Delegate Protokoll haben, welches logischerweise von UIScrollViewDelegate abstammt, aber neue Methoden und daher auch einen neuen Namen mitbringt.
Im Header meiner Klasse habe ich also Folgendes:
Alles anzeigen
Da ich nicht weiß wie UIScrollView seine iVar genau nennt (bzw. mich nicht darauf verlassen sollte, dass Apple diese nie umbenennt), wollte ich Setter / Getter einfach an UIScrollView weiterreichen.
Wer weiss ob Apple teilweise direkt auf die iVar statt über den Getter zugreift, was sonst zu Fehlern führen würde.
Beim Setter schluckt er das auch problemlos, er weiß ja TWGridViewDelegate versteht alle Methoden von UIScrollViewDelegate.
Beim Getter sieht er das aber logischerweise anders:
Wie bringe ich dem Compiler also bei, dass er in diesem Fall definitiv ein TWGridViewDelegate bekommt?
Ist ja an sich das selbe wie bei einer Instanz das Casten auf eine bestimmte Klasse.
Nur wie geht das bei Protokollen?
scheint nicht die richtige Lösung zu sein. ;)
P.S. und ist das überhaupt ein anständiger Weg, oder spricht da was dagegen?
ich habe eine Subclass die von UIScrollView abgeleitet ist.
Die neue Klasse soll ein Delegate Protokoll haben, welches logischerweise von UIScrollViewDelegate abstammt, aber neue Methoden und daher auch einen neuen Namen mitbringt.
Im Header meiner Klasse habe ich also Folgendes:
Quellcode
Da ich nicht weiß wie UIScrollView seine iVar genau nennt (bzw. mich nicht darauf verlassen sollte, dass Apple diese nie umbenennt), wollte ich Setter / Getter einfach an UIScrollView weiterreichen.
Wer weiss ob Apple teilweise direkt auf die iVar statt über den Getter zugreift, was sonst zu Fehlern führen würde.
Beim Setter schluckt er das auch problemlos, er weiß ja TWGridViewDelegate versteht alle Methoden von UIScrollViewDelegate.
Beim Getter sieht er das aber logischerweise anders:
Returning 'id<UIScrollViewDelegate>' from a function with incompatible result type 'id<TWGridViewDelegate>'
Wie bringe ich dem Compiler also bei, dass er in diesem Fall definitiv ein TWGridViewDelegate bekommt?
Ist ja an sich das selbe wie bei einer Instanz das Casten auf eine bestimmte Klasse.
Nur wie geht das bei Protokollen?
scheint nicht die richtige Lösung zu sein. ;)
P.S. und ist das überhaupt ein anständiger Weg, oder spricht da was dagegen?
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Tobse001 ()