Mit XCode 4.5 und iOS 6 entwickle ich eine App mit einer einfachen Tabellenansicht mit benutzerdefinierten Zellen. Ich habe dies hundertmal in iOS 5 und darunter getan, aber aus irgendeinem Grund bereitet mir das neue AutoLayout-System große Probleme.
Ich habe meine Tabellenansicht und meine Prototypzelle in IB eingerichtet, Unteransichten hinzugefügt und sie als IBOutlets verkabelt. Dann habe ich meinen Delegaten und meine Datenquelle eingerichtet. Wenn jetzt jedoch die erste Zelle abgerufen cellForRowAtIndexPath
wird, wird der folgende Fehler angezeigt:
*** Assertionsfehler in - [ShopCell layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2372/UIView.m:5776
*** Beenden der App aufgrund der nicht erfassten Ausnahme 'NSInternalInconsistencyException', Grund: 'Nach dem Ausführen von -layoutSubviews ist weiterhin ein automatisches Layout erforderlich. Die Implementierung von -layoutSubviews durch ShopCell muss super aufgerufen werden. '
Ich habe keine -layoutSubviews-Methode in meiner untergeordneten Zelle (ShopCell) implementiert, und selbst wenn ich dies versuche und den Superaufruf hinzufüge, da dies darauf hindeutet, erhalte ich immer noch den gleichen Fehler. Wenn ich die Unteransichten aus der Zelle in IB entferne und sie in eine Standard-UITableViewCell ändere, funktioniert alles wie erwartet, obwohl ich natürlich keine Daten in meinen Zellen habe.
Ich bin mir fast sicher, dass mir etwas Einfaches fehlt, kann aber keine Dokumentation oder Anleitungen finden, die darauf hinweisen, was ich falsch gemacht habe. Jede Hilfe wäre dankbar.
Bearbeiten: Ich habe gerade versucht, es in eine UITableViewCell in IB zu ändern und alle Unteransichten beizubehalten, immer noch der gleiche Fehler.
lldb [[UIWindow keyWindow] _autoLayoutTrace]
im Debugger-Bereich, wenn das automatische Layout verwendet wird.