Tôi có đoạn mã sau mà tôi sử dụng để chia tỷ lệ hình ảnh. Đây là trong một vòng lặp tạo ra và thoát ra một hồ bơi autorelease cho mỗi vượt qua. Mã này hoạt động tốt trong trình mô phỏng trong iOS5.0, trong iOS4.3 trên iPad hoặc trình mô phỏng, nhưng trên iOS5.0.1 trên iPad1, sau khi vượt qua 50-60, drawInRect bắt đầu tiêu thụ bộ nhớ không bao giờ được phát hành. Tôi đã gọi điều này từ một chuỗi thứ cấp, nhưng bây giờ gọi các hoạt động mở rộng quy mô trên luồng chính.Rò rỉ bộ nhớ drawInRect trên iOS5.0.1
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Tôi có làm gì sai hoặc đây có phải là lỗi iOS5.0.1 không?
Cập nhật: Tôi đã thử nhiều thử nghiệm. Tôi đã có thể chứng minh rằng chính xác cùng một mã được biên dịch với XCode 4.0 chạy tốt trên cùng một iPad. Cùng một mã được biên dịch với XCode 4.2.1 gây ra một điều kiện hết bộ nhớ. Quy trình mở rộng quy mô này đang được gọi trong một chuỗi nền. Tôi đã viết một quy trình chia tỷ lệ khác nhau bằng cách sử dụng các cuộc gọi đồ họa lõi cấp thấp hơn. Nó không bị rò rỉ với XCode 4.0 nhưng bị rò rỉ khi trong ứng dụng của tôi với XCode 4.2.1. Chính xác cùng một cây định kỳ và cây gọi chạy trong một dự án độc lập không xuất hiện để rò rỉ (nhiều) bộ nhớ trên XCode 4.2.1. Tôi đang chờ đợi để nghe từ Apple về điều này. Trong thời gian đó tôi cần phải sử dụng XCode 4. Hình ảnh cài đặt duy nhất tôi yêu cầu Snow Leopard có nghĩa là tôi đang sử dụng máy cũ 5,5 năm tuổi của mình. Cảm ơn
Cập nhật 1/2012 Điều này dường như chỉ xảy ra nếu ứng dụng được bắt đầu từ bên trong XCode. Cùng một thực thi bắt đầu trên iPad không có triển lãm rò rỉ. Một ứng dụng khác với cùng một thói quen không thể hiện sự rò rỉ.
Tôi đã mở một báo cáo lỗi với Apple và đã gửi cho họ dự án tái tạo sự cố. Tôi không mong đợi nó sẽ sớm được giải quyết, nhưng nó dường như không phổ biến như tôi nghĩ ban đầu.
Cập nhật 6/2012 Mặc dù đã gửi cho Apple một dự án tối thiểu tái tạo vấn đề, họ tuyên bố không thể tái tạo vấn đề và không thực hiện bất kỳ tiến trình nào.
Dường như tôi đặt các câu hỏi khó với một vài câu trả lời thực sự giải quyết được vấn đề. Chẳng hạn như cái này. Nó thực sự có thể là một lỗi biên dịch w các thư viện trong XCode 4.2. Mã tương tự này được biên dịch với SDK cho iOS 4.2 không có rò rỉ bộ nhớ trên iPad chạy iOS5.0.1. – David
bạn đã bao giờ tìm thấy giải pháp cho vấn đề này chưa? – vondip
Sự rò rỉ mà tôi gặp phải chỉ xảy ra khi ứng dụng được bắt đầu thông qua XCode. Khi bắt đầu bình thường trên iPad, nó không bị rò rỉ. Người dùng đã báo cáo một vụ tai nạn nghe như thế này gây ra nó, nhưng tôi nghĩ rằng cả hai đều không liên quan. Tôi lãng phí một tháng hoảng sợ cố gắng giải quyết. Tôi đã mở một báo cáo lỗi, nhưng chưa bao giờ nhận được phản hồi hữu ích. Họ tuyên bố họ không thể tái tạo, nhưng họ không cố gắng hoặc không hiểu. Tôi đã gửi một dự án tầm thường minh họa rõ ràng vấn đề. – David