Utilizzando XCode 4.5 e iOS 6, sto sviluppando un'app con una semplice visualizzazione tabella con celle personalizzate. L'ho fatto un centinaio di volte in iOS 5 e versioni precedenti, ma per qualche motivo il nuovo sistema di autoLayout mi sta dando molti problemi.
Ho impostato la visualizzazione della tabella e la cella prototipo in IB, ho aggiunto le sottoview e le ho cablate come IBOutlet, quindi ho configurato il mio delegato e dataSource. Tuttavia ora ogni volta che viene recuperata la prima cella cellForRowAtIndexPath
, ottengo il seguente errore:
*** Errore di asserzione in - [ShopCell layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2372/UIView.m:5776
*** Chiusura dell'app a causa di un'eccezione non rilevata "NSInternalInconsistencyException", motivo: "Layout automatico ancora richiesto dopo l'esecuzione di -layoutSubviews. L'implementazione di ShopCell di -layoutSubviews deve chiamare super. '
Non ho implementato un metodo -layoutSubviews nella mia cella sottoclasse (ShopCell), e anche quando provo a farlo e aggiungo la super chiamata in quanto suggerisce che ricevo ancora lo stesso errore. Se rimuovo le sottoview dalla cella in IB e lo cambio in un UITableViewCell standard, tutto funziona come previsto, anche se ovviamente non ho dati nelle mie celle.
Sono quasi certo che mi manchi qualcosa di semplice, ma non riesco a trovare alcuna documentazione o guida che suggerisca cosa ho fatto di sbagliato. Qualsiasi aiuto sarebbe apprezzato.
Modifica: ho appena provato a cambiarlo in un UITableViewCell in IB e lasciando tutte le visualizzazioni secondarie in posizione, sempre lo stesso errore.
lldb [[UIWindow keyWindow] _autoLayoutTrace]
nell'area del debugger se viene utilizzato il layout automatico.