Sử dụng XCode 4.5 và iOS 6, tôi đang phát triển một ứng dụng có chế độ xem bảng đơn giản với các ô tùy chỉnh. Tôi đã thực hiện điều này hàng trăm lần trong iOS 5 trở xuống, nhưng vì một số lý do, hệ thống autoLayout mới đang mang đến cho tôi rất nhiều rắc rối.
Tôi thiết lập chế độ xem bảng và ô nguyên mẫu của mình trong IB, thêm các cuộc phỏng vấn và kết nối chúng với tư cách là IBOutlets sau đó thiết lập đại biểu và nguồn dữ liệu của tôi. Tuy nhiên, bây giờ bất cứ khi nào ô đầu tiên được tìm nạp cellForRowAtIndexPath
, tôi gặp lỗi sau:
*** Lỗi xác nhận trong - [Bố cục ShopCellSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2372/UIView.m giáp776
*** Chấm dứt ứng dụng do ngoại lệ chưa được phát hiện 'NSIternalInconsistencyException', lý do: 'Bố cục tự động vẫn được yêu cầu sau khi thực hiện -layoutSubview. Việc triển khai -layoutSubview của ShopCell cần gọi siêu. '
Tôi đã không triển khai phương thức -layoutSubview trong ô được phân lớp của mình (ShopCell) và ngay cả khi tôi cố gắng thực hiện điều đó và thêm siêu cuộc gọi vì nó cho thấy tôi vẫn gặp lỗi tương tự. Nếu tôi xóa các cuộc phỏng vấn khỏi ô trong IB và thay đổi nó thành UITableViewCell tiêu chuẩn, mọi thứ sẽ hoạt động như mong đợi, mặc dù dĩ nhiên tôi không còn dữ liệu trong các ô của mình.
Tôi gần như chắc chắn rằng có điều gì đó đơn giản tôi đang thiếu, nhưng không thể tìm thấy bất kỳ tài liệu hoặc hướng dẫn nào để đề xuất những gì tôi đã làm sai. Bất kỳ trợ giúp sẽ được đánh giá cao.
Chỉnh sửa: Chỉ cần thử thay đổi nó thành UITableViewCell trong IB và để tất cả các cuộc phỏng vấn tại chỗ, vẫn cùng một lỗi.
lldb [[UIWindow keyWindow] _autoLayoutTrace]
tại khu vực gỡ lỗi nếu sử dụng bố trí tự động.