Tôi chưa từng thấy cá nhân didReceiveMemoryWarning
được gọi trước đây. Có một ngưỡng sử dụng bộ nhớ đã biết nơi nó được gọi không?Khi nào được thực hiệnĐánh giáMemoryCảnh báo thực sự được gọi là
Trả lời
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ọiviewWillUnload
vàviewDidUnload
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ápviewDidLoad
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ứcdidReceiveMemoryWarning
.
Giới hạn ngưỡng, tôi cố gắng không vượt quá 12MB bộ nhớ.
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.
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
- 1. Khi nào ContentProvider thực sự được tạo?
- 2. Tham số chưa được đặt tên có thực sự được chuyển trong khi gọi hàm không?
- 3. Khi nào gói savedInstanceState thực sự được sử dụng?
- 4. Điều gì thực sự khiến Session_Start được gọi?
- 5. khi nào là sự kiện "DOMNodeInserted" được gọi?
- 6. Khi nào ChannelUrl thực sự được sử dụng?
- 7. Thực thi mã trước khi hàm được gọi được thực thi
- 8. "Khi nào một Lớp được tải" thực sự có nghĩa là gì?
- 9. Khi nào PyEval_InitThreads được gọi là?
- 10. Xóa thông báo khi addAction được gọi?
- 11. Điều kiện khi đã thực hiệnFinishLaunchingWithOptions được gọi bởi IOS
- 12. DoInBackground của AsyncTask bắt đầu thực hiện quá muộn sau khi AsyncTask :: thực thi được gọi là
- 13. Thêm phần tử khi sự kiện "DOMNodeInserted" được gọi là
- 14. Là QLocalSocket thực sự được sử dụng cho namedpipes
- 15. Tôi có thể ngăn chặn window.onbeforeunload không được gọi khi thực hiện cuộc gọi AJAX
- 16. Khi nào là finalize được gọi là trên singletons khi một classloader được phát hành?
- 17. Mục tiêu C - được thông báo khi một phương pháp được gọi là
- 18. Tại sao tham số Nút "lệnh" được thực hiện khi được khai báo?
- 19. Thực hiện hành động tùy chỉnh khi phương thức void giả định được gọi là
- 20. Khi nào ServiceConnection.onServiceDisconnected() được gọi?
- 21. Khi getView() trong ArrayAdapter được gọi là
- 22. UICollectionViewLayout khi nào là layoutAttributesForItemAtIndexPath được gọi là
- 23. Điều gì thực sự xảy ra khi gọi setCancelsTouchesInView?
- 24. Kịch bản lệnh hàng loạt không được thực thi nếu chcp được gọi là
- 25. NSNotification không được gửi khi postNotificationName: được gọi là
- 26. Phương thức layoutSubviews được gọi là khi nào?
- 27. ASP MVC: Khi nào IController Dispose() được gọi là?
- 28. Nếu performSelectorOnMainThread: waitUntilDone: được gọi từ luồng chính, khi nào nó sẽ thực thi?
- 29. cách kiểm tra khi nào cuộn UITableView được thực hiện
- 30. Dấu vết của các chương trình được thực hiện được gọi là bash script