Tôi đang tạo một ứng dụng sẽ tìm nạp tài nguyên hình ảnh và văn bản từ dịch vụ web. Tôi chọn danh mục UIImageView + AFNetworking của AFNetworking tuyệt vời để xử lý các nội dung tải xuống hình ảnh.Phân bổ bộ nhớ AFNetworking tiếp tục tăng
Tuy nhiên, tôi đang gặp phải vấn đề về bộ nhớ. Tôi đã sử dụng công cụ Phân bổ của Instruments, mỗi khi tôi tải thêm hình ảnh, sẽ luôn có sự tăng trưởng về cấp phát bộ nhớ, kích thước 1-2 MB. Tôi theo dõi xuống mã nguồn, hóa ra là nó nằm trong mã của AFNetworking.
Dòng chính xác của mã này là:
- (void)connectionDidFinishLoading:(NSURLConnection *)__unused connection {
self.responseData = [self.outputStream propertyForKey:NSStreamDataWrittenToMemoryStreamKey];
[self.outputStream close];
[self finish];
self.connection = nil;
}
này sẽ chiếm 99,6% của cấp phát bộ nhớ.
tôi sử dụng ARC trong dự án, hiển thị các UIImageViews trong một UITableView và cấu hình các tế bào giống như đoạn mã sau:
[self.imageView setImageWithURLRequest:request
placeholderImage:nil
success:successBlock
failure:failBlock];
Bất kỳ một thể cung cấp một số ý tưởng về vấn đề bộ nhớ? Nó thực sự là một cuz nhức đầu khi bộ nhớ được cấp phát, chúng sẽ không bao giờ bị xóa ngay cả khi tôi xóa toàn bộ khung nhìn hình ảnh. Sau một thời gian ngắn, ứng dụng của tôi sẽ chiếm hơn 100 MB từ cửa sổ Sử dụng bộ nhớ thực của Công cụ.
Bất kỳ trợ giúp nào sẽ được đánh giá cao !! Cảm ơn trước!!
Tôi vừa mở một sự cố: https://github.com/AFNetworking/AFNetworking/issues/509 – rodowi