2010-10-26 25 views

Trả lời

8

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ớ.

+0

Cảm ơn! ... đoạn cuối cùng là đầu mối tôi đang tìm kiếm. – Omer

-1

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ớ.

0

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ớ.

1

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ỉ.

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