5

Câu hỏi về didReceiveMemoryWarning/viewDidUnload.IsReceiveMemoryWarning/viewDidUnload có được gọi khi bộ điều khiển xem được hiển thị không?

Nếu ứng dụng của tôi có nhiều bộ điều khiển chế độ xem, một trong số đó được hiển thị và các bộ điều khiển khác (vì tôi sử dụng bộ điều khiển điều hướng hoặc thanh điều khiển thanh, điều đó không quan trọng), bộ điều khiển chế độ xem sẽ nhận được didReceiveMemoryWarning/viewDidUnload, tất cả chúng, chỉ ẩn, hoặc chỉ hiển thị?

Có thể hiển thị VC nhận được didReceiveMemoryWarning nhưng không viewDidUnload (vì như được hiển thị, nó không có ý nghĩa gì).

Bằng cách này, tôi có những câu hỏi này sau khi nhìn thấy sơ đồ này: UIViewController init/dealloc flow chart

Cảm ơn rất nhiều sự giúp đỡ.

+0

Từ sơ đồ của bạn, nó theo sau chế độ xemDidUnload được gọi chỉ khi didReceiveMemoryWarning được gọi là ??? hmmm nó không phải là sự thật – Stas

+0

Đó là lý do của câu hỏi của tôi. Bạn có biết một sơ đồ tốt hơn không? Cảm ơn. – Ricardo

+1

Có vẻ như câu trả lời này có câu trả lời: http://www.nextconceptdc.com/blog/wp-content/uploads/2011/08/UIViewControllerLifecycle.png – Ricardo

Trả lời

1

Thứ nhất, có hai phương pháp didReceiveMemwarnings:

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application 

được gọi khi ứng dụng nhận được một cảnh báo bộ nhớ từ hệ thống. và UIViewController's

- (void)didReceiveMemoryWarning 

Gửi tới bộ điều khiển xem khi ứng dụng nhận được cảnh báo bộ nhớ. Thứ hai, trước hết được gọi là mã trong các phương pháp này (tốt, tất nhiên), sau đó trong các bộ điều khiển mà không có superviews (tức là những người không được hiển thị tại thời điểm này) xem được xóa và viewDidUnload được gửi

0

Khi nhận được cảnh báo bộ nhớ, nó nhận được ở cấp ứng dụng, tất cả viewControllers và appdelegate của bạn nhận được nó.

Không cần thiết viewDidUnload được gọi cho bất kỳ hoặc tất cả bộ điều khiển. Nó phụ thuộc hoàn toàn vào cách hệ điều hành quan trọng nghĩ rằng cảnh báo bộ nhớ là như thế nào. Giống như lần đầu tiên - ứng dụng của bạn nhận được cảnh báo Level 1 sau đó Level 2 và nhiều khả năng là lần thứ ba (trong khoảng thời gian ngắn) HĐH sẽ chấm dứt ứng dụng tin rằng nó đã chuyển sang trạng thái không ổn định.

Các vấn đề liên quan