2012-10-19 28 views

Trả lời

7

Nó được gọi khi hệ thống có bộ nhớ thấp, sau đó bạn cần thanh lọc UIViewController của mình .

Bạn có thể mô phỏng cảnh báo bộ nhớ trong Trình mô phỏng: Hardware > Simulate Memory Warning và xem điều gì sẽ xảy ra.

Nếu bạn đang hỗ trợ các phiên bản trước iOS6 điều quan trọng cần lưu ý những điều sau đây từ Apple's documentation:

Trước khi iOS 6, khi một cảnh báo bộ nhớ thấp xảy ra, lớp UIViewController thanh lọc quan điểm của mình nếu nó biết nó có thể tải lại hoặc tạo lại chúng sau này. Nếu điều này xảy ra, nó cũng gọi viewWillUnloadviewDidUnload phương pháp để cung cấp cho mã của bạn một cơ hội để từ bỏ quyền sở hữu của bất kỳ đối tượng có liên quan đến hệ thống phân cấp view của bạn, bao gồm cả đối tượng được nạp từ các tập tin nib, đối tượng được tạo trong phương pháp viewDidLoad của bạn và các đối tượng được tạo lười biếng trong thời gian chạy và được thêm vào hệ thống phân cấp chế độ xem. Trên iOS 6, các chế độ xem sẽ không bao giờ bị xóa và các phương pháp này sẽ không bao giờ được gọi. Nếu bộ điều khiển chế độ xem của bạn cần thực hiện các tác vụ cụ thể khi bộ nhớ yếu, nó sẽ ghi đè phương thức didReceiveMemoryWarning.

Giới hạn ngưỡng, tôi cố gắng không vượt quá 12MB bộ nhớ.

2

No. Nó được gọi khi bàn đạp cảm thấy rằng có quá nhiều tài nguyên sử dụng bộ nhớ trên thiết bị. Tùy thuộc vào số lượng các ứng dụng khác đang sử dụng trên điện thoại của bạn, nó có thể xảy ra sớm hay muộn. Bạn không bao giờ có thể tin cậy hoặc dựa vào thời điểm nó sẽ xảy ra. Cũng được cảnh báo, bởi vì bộ nhớ được báo cáo trong các công cụ như phân bổ không nhất thiết tương quan với dấu chân của ứng dụng của bạn, vì vậy có vẻ như bạn không sử dụng nhiều, nhưng bạn vẫn có thể nhận được cảnh báo này.

2

từ tài liệu, khi hệ thống xác định rằng lượng bộ nhớ khả dụng thấp thì phương pháp này được gọi. hệ thống tự xác định bộ nhớ thấp, khi phân bổ ứng dụng của bạn vượt quá dung lượng bộ nhớ có sẵn cho ứng dụng của bạn thì phương thức này được gọi. Vui lòng tham khảo http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

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