2012-01-28 14 views
12

Tôi đang phát triển cho iOS và kiểm tra ứng dụng của mình bằng IPhone và IPad.iOS - tôi nhận được cảnh báo bộ nhớ nhưng không biết tại sao

Tôi nhận được nhiều cảnh báo bộ nhớ (didReceiveMemoryWarning được gọi) nhưng không biết tại sao. Ứng dụng của tôi đang sử dụng ~ 35MB ở các điểm cao nhất và 4-5 MB khi đó là điểm thấp nhất.

Tôi đã cố gắng tìm rò rỉ bằng cách sử dụng 'công cụ' nhưng không thể tìm thấy bất kỳ vấn đề nghiêm trọng nào.

Có cách nào tốt để tìm hiểu lý do tại sao hệ thống gửi cảnh báo bộ nhớ?

+0

Công cụ Rò rỉ là công cụ có sẵn tốt nhất. Bạn đã chạy rò rỉ cả trình mô phỏng và trên thiết bị? – smparkes

Trả lời

24

Cảnh báo bộ nhớ được mong đợi trong ứng dụng iOS. Nó không phải là do ứng dụng của bạn. Các ứng dụng khác vẫn còn trong bộ nhớ ngay cả khi ứng dụng bị tạm ngưng. Hệ điều hành sẽ thực hiện quản lý bộ nhớ bằng cách gửi cảnh báo bộ nhớ và xóa ứng dụng khi cần thiết. Miễn là bạn đang sử dụng số lượng bộ nhớ hợp lý (với ít hoặc không có rò rỉ bộ nhớ) và xử lý didReceiveMemoryWarning đúng cách, bạn sẽ ổn thôi.

Ngoài ra, khi ứng dụng của bạn đang ở chế độ tạm ngưng, nếu ứng dụng của bạn đang sử dụng ít dung lượng bộ nhớ, ứng dụng của bạn sẽ có nhiều khả năng tồn tại quá trình giết người hơn. Vì ứng dụng có dấu chân bộ nhớ lớn hơn sẽ bị chấm dứt trước.

+0

Tôi nhận được "Cảnh báo bộ nhớ đã nhận" khi gỡ lỗi ứng dụng của mình trên iPhone 5 với hàng chục ứng dụng hoạt động khác. Sau khi tôi dừng lại từng người một và thử lại, lời cảnh báo đó đã biến mất. – Donald

10

Tôi cũng thấy rằng "Sản phẩm -> Phân tích" (Shift + Command + B) có thể giúp bạn phân loại một số vấn đề về mã trước khi bạn bắt đầu sử dụng Rò rỉ. Với sự ra đời của ARC, điều này trở nên ít hữu ích hơn.