Menggunakan XCode 4.5 dan iOS 6, saya mengembangkan aplikasi dengan tampilan tabel sederhana dengan sel khusus. Saya telah melakukan ini ratusan kali di iOS 5 dan di bawahnya, tetapi untuk beberapa alasan sistem autoLayout baru memberi saya banyak masalah.
Saya mengatur tampilan tabel dan sel prototipe saya di IB, menambahkan subview dan menghubungkannya sebagai IBOutlets kemudian mengatur delegasi dan dataSource saya. Namun sekarang setiap kali sel pertama diambil cellForRowAtIndexPath
, saya mendapatkan kesalahan berikut:
*** Kegagalan pernyataan di - [ShopCell layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2372/UIView.m:5776
*** Menghentikan aplikasi karena pengecualian yang tidak tertangkap 'NSInternalInconsistencyException', alasan: 'Tata Letak Otomatis masih diperlukan setelah menjalankan -layoutSubviews. Implementasi -layoutSubviews dari ShopCell perlu memanggil super. '
Saya belum mengimplementasikan metode -layoutSubviews di sel subclass saya (ShopCell), dan bahkan ketika saya mencoba melakukan itu dan menambahkan panggilan super seperti yang disarankan saya masih mendapatkan kesalahan yang sama. Jika saya menghapus subview dari sel di IB, dan mengubahnya menjadi UITableViewCell standar, semuanya bekerja seperti yang diharapkan, meskipun tentu saja saya tidak memiliki data di sel saya.
Saya hampir yakin bahwa ada sesuatu yang sederhana yang saya lewatkan, tetapi tidak dapat menemukan dokumentasi atau panduan untuk menyarankan kesalahan saya. Bantuan apa pun akan dihargai.
Edit: Baru saja mencoba mengubahnya menjadi UITableViewCell di IB dan membiarkan semua subview di tempatnya, masih kesalahan yang sama.
lldb [[UIWindow keyWindow] _autoLayoutTrace]
di area debugger jika tata letak otomatis digunakan.