Tôi đang cố gắng tuân thủ các nguyên tắc của Apple về việc đáp ứng các cảnh báo bộ nhớ thấp trong ứng dụng của tôi. Các hướng dẫn nói: "Khi nhận được (cảnh báo bộ nhớ thấp), ứng dụng của bạn phải giải phóng bộ nhớ càng nhiều càng tốt bằng cách giải phóng các đối tượng không cần hoặc xóa bộ nhớ cache mà nó có thể tạo lại sau".iOS 5 + ARC - không gán con trỏ cho con trỏ để giải phóng bộ nhớ?
Câu hỏi đặt ra là cách 'giải phóng' bộ nhớ, sử dụng ARC?
Ví dụ: giả sử tôi có hình ảnh trong cấu trúc phân cấp chế độ xem của chế độ xem không có trên màn hình. Trong didReceiveMemoryWarning, tôi hiện đang xóa nó khỏi khung nhìn bằng cách gọi removeFromSuperview, nhưng tôi vẫn có một con trỏ tới chính UIImage. Tôi có nên cố gắng giải phóng bộ nhớ này không? Làm sao? Bằng cách gán nil cho con trỏ?
TIA: John
Vui lòng cung cấp thêm thông tin về con trỏ. Nó có phải là một ngà, địa phương trong một phương pháp, toàn cầu, tài sản? – zaph
Vâng những cái mà tôi đang nghĩ đến là các biến cá thể UIImage *. – John
Được rồi, tôi nghĩ rằng tôi đã giải quyết được vấn đề của mình bằng cách sử dụng tham chiếu yếu cho subview và 2) gán con trỏ cho con trỏ nếu khung nhìn vẫn còn xung quanh khi didReceiveMemeoryWarning được thực hiện (mỗi lần tôi thấy nó trong trình gỡ lỗi) . Chủ yếu, tôi nghĩ rằng tôi chỉ nhận ra rằng bạn không thể tránh cảnh báo bộ nhớ tất cả các thời gian ... đôi khi chúng được gây ra bởi các ứng dụng khác. Bạn chỉ cần xử lý chúng đúng cách. Sau khi sửa bộ xử lý cảnh báo bộ nhớ của mình, tôi chỉ nhận được cảnh báo một lần, thay vì mỗi khi tôi kích hoạt UIImagePickerController. Một cải tiến lớn. – John