Tôi nên làm gì khi ứng dụng của tôi nhận được cảnh báo bộ nhớ?Việc cần làm khi ứng dụng của tôi nhận được cảnh báo bộ nhớ?
Trả lời
Tất cả phụ thuộc vào ứng dụng của bạn, thông thường bạn không phải làm bất cứ điều gì đặc biệt trừ khi thực hiện theo các khuyến cáo của Apple.
Chế độ xemBộ điều khiển không hiển thị tại thời điểm này sẽ nhận được thông báo didReceiveMemoryWarning
. Theo mặc định (gọi [super didReceiveMemoryWarning]
) chế độ xem của bộ điều khiển được tải xuống (được giải phóng, được giải phóng). Khi khung nhìn được dỡ xuống, bộ điều khiển xem nhận được viewDidUnload
nơi bạn nên phát hành tất cả các IBOutlets của bạn (hoặc các yếu tố giao diện người dùng khác được giữ lại). Chỉ khi đó khung nhìn hoàn toàn có thể được giải phóng và giải phóng bộ nhớ.
Trong số didReceiveMemoryWarning
bạn cũng nên miễn phí càng nhiều dữ liệu càng tốt - nếu bạn lưu trữ một phần mô hình dữ liệu trong ViewController, hãy giải phóng nó và tạo lại trong viewDidLoad
sẽ được gọi khi khung nhìn của bạn được tải lại (khi người dùng điều hướng quay lại bộ điều khiển này). Bạn cũng có thể thông báo cho các lớp mô hình của mình để giải phóng bộ nhớ.
Nếu bạn đăng nhập hoặc ghi vào bất kỳ tệp nào khác, có thể có sự cố với dung lượng "đĩa".
Ngoài ra, bạn nên kiểm tra rò rỉ bộ nhớ.
Trong didReceiveMemoryWarning
, bạn nên giải phóng mọi mục được lưu trong bộ nhớ cache hoặc không cần thiết để ngăn không cho hết bộ nhớ.
Nó thực sự phụ thuộc vào ứng dụng của bạn.
Nếu ứng dụng của bạn tải xuống và lưu trữ nhiều nội dung từ Internet chẳng hạn, bạn nên thanh lọc càng nhiều càng tốt khi nhận được cảnh báo.
Nếu ứng dụng của bạn là trò chơi OpenGL, bạn có thể có trình quản lý kết cấu/âm thanh/dữ liệu tham chiếu đến một số dữ liệu không sử dụng mà bạn muốn miễn phí. Cocos2D quản lý loại điều này.
Nếu ứng dụng của bạn không phải là bộ nhớ chuyên sâu, bạn bị rò rỉ bộ nhớ ở đâu đó và bạn nên 1) đọc Hướng dẫn lập trình quản lý bộ nhớ của Apple 2) sử dụng Công cụ/Rò rỉ.
- 1. Ứng dụng IOS bị giết vì Bộ nhớ Thấp nhưng không có Cảnh báo Bộ nhớ nào nhận được
- 2. iOS - tôi nhận được cảnh báo bộ nhớ nhưng không biết tại sao
- 3. iPad nhận cảnh báo bộ nhớ với mức sử dụng bộ nhớ thấp
- 4. Cảnh báo bộ nhớ thấp cho NSObject
- 5. Cách tuyệt vời để tự động cảnh báo ứng dụng Java của tôi khi bộ nhớ sắp hết?
- 6. Cảnh báo bộ nhớ UIImagepickerController IOS 7
- 7. Cảnh báo bộ nhớ và sự cố khi tạo PDF
- 8. Phát triển iPhone - Mô phỏng Cảnh báo bộ nhớ
- 9. Sử dụng bộ nhớ dữ liệu chính và cảnh báo bộ nhớ
- 10. hết lỗi bộ nhớ, lỗi ứng dụng của tôi?
- 11. Làm cách nào để biết ứng dụng iPhone của tôi có đang chạy khi nhận được Thông báo đẩy không?
- 12. Cảnh báo bộ nhớ sau khi sử dụng UIImagePicker một lần
- 13. Bộ nhớ trong của Android khi cập nhật ứng dụng
- 14. Tại sao tôi nhận được cảnh báo "LoaderLock được phát hiện" khi gỡ lỗi?
- 15. Cách tìm bộ nhớ sử dụng ứng dụng Android của tôi được viết C++ bằng NDK
- 16. Khởi chạy ứng dụng khi thông báo GCM nhận được
- 17. báo lỗi khi kéo cảnh báo: gói tối ưu - ra khỏi bộ nhớ
- 18. Tại sao tôi không nhận được cảnh báo khi tôi redeclare biến kiểm soát Forl foreach?
- 19. Không thể nhận được Log4Net để làm việc trong ứng dụng WCF của chúng tôi
- 20. Nhiều MKOverlays trên MKMapView dẫn đến cảnh báo bộ nhớ
- 21. AVCaptureSession nhận cảnh báo và sự cố bộ nhớ mà không có lý do
- 22. Tại sao việc sử dụng bộ nhớ của ứng dụng .NET dường như giảm khi nó được thu nhỏ?
- 23. Valgrind báo cáo 'có thể mất' bộ nhớ khi làm việc với chủ đề Boost
- 24. Tại sao tôi không nhận được cảnh báo từ Perl?
- 25. Làm thế nào tôi có thể lập trình nhận được bộ nhớ, luồng và ứng dụng CPU từ bên trong ứng dụng Java của tôi?
- 26. "Cảnh báo bộ nhớ đã nhận. Cấp = 2" với 4.x?
- 27. C# Hết bộ nhớ ngoại lệ - chiến lược cảnh báo
- 28. Tại sao tôi nhận được cảnh báo sau khi tôi nói "git commit".
- 29. cảnh báo không được chấp nhận trong xcode và cách xử lý việc ngừng sử dụng
- 30. Làm cách nào để triển khai cảnh báo lỗi mạng vào ứng dụng của tôi?
Cảm ơn! ... đoạn cuối cùng là đầu mối tôi đang tìm kiếm. – Omer