2012-07-30 34 views
5

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!!

+0

Tôi vừa mở một sự cố: https://github.com/AFNetworking/AFNetworking/issues/509 – rodowi

Trả lời

1

Có thể xóa bộ nhớ cache của hình ảnh. Có một cuộc thảo luận về nó trên github đây:

AFNetworking Image Cache

Đó có thể hoặc không thể giải quyết vấn đề của bạn. Tôi sẽ tưởng tượng xóa bộ nhớ cache một cách thường xuyên nên giữ cho sử dụng bộ nhớ của bạn xuống mặc dù.

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