Vì tôi đã chuyển đổi một ứng dụng cũ sang iOS 6 Tôi đã bắt đầu nhận được thông báo sau trong bảng điều khiển của mình.Thời gian tải chậm UIViewController (cảnh báo ClientState chậm)
WARNING: Slow defaults access for key ClientState took 0.023656 seconds, tolerance is 0.020000
Ngoài việc cập nhật mã của tôi từ iOS 5 lên iOS 6, tôi cũng chuyển sang tự động bố trí. Tôi đã chạy Instruments/Time Profiler và rootViewController
trong appDelegate của tôi là vấn đề. Mỗi khi tôi chuyển đổi các bộ điều khiển xem, nó sẽ chiếm phần lớn thời gian, (bất kể tôi có phải khởi tạo bộ điều khiển xem hay tái sử dụng bộ điều khiển đã tồn tại).
window.rootViewController = myViewController;
Tôi biết phương pháp này bề ngoài, nhưng tôi không chắc điều gì xảy ra dưới bìa ... điều gì sẽ làm chậm và tôi có thể làm gì để tăng tốc?
EDIT: Tôi đã thử tắt bảng phân cảnh của mình và bố cục biến mất (dĩ nhiên bố cục giao diện người dùng của tôi bị lỗi). Vì vậy, kết luận rõ ràng là, đó là một cái gì đó về bố trí tự động. Tôi có lẽ chỉ dưới 70 lượt xem tất cả kết hợp trên màn hình và các ràng buộc khác nhau cần thiết để đặt chúng ra. Tôi có một thời gian khó tin rằng bố trí tự động là chậm hơn nhiều (từ ~ 80ms với bố cục tự động tắt đến ~ 1370ms với bố cục tự động bật).
Cảnh báo kỳ lạ chưa từng thấy trước đây nhưng bạn có sử dụng Dữ liệu cốt lõi không? – Nathan
Không. Chỉ cần một vài bộ điều khiển xem khá phức tạp trên một bảng phân cảnh duy nhất và một số lớp đối tượng dữ liệu tôi sắp xếp tuần tự. Vì tất cả dữ liệu (không nhiều) cần thiết để giữ nguyên bộ nhớ trong toàn bộ thời gian, ứng dụng đang chạy Core Data dường như quá mức cần thiết. – DBD
bản sao có thể có của [Truy cập mặc định chậm cho cảnh báo ClientState chính trên iOS] (http://stackoverflow.com/questions/12873144/slow-defaults-access-for-key-clientstate-warning-on-ios) –