2013-02-16 63 views
5

Tôi đang tải dữ liệu với RestKit bằng cách tạo RKObjectRequestOperation s và thêm chúng vào hàng đợi RestKit của:UIImageView + AFNetworking hình ảnh theo yêu cầu hàng đợi yêu cầu mạng khác từ RestKit

RKObjectRequestOperation *operation = [RK objectRequestOperationWithRequest:request 
     success:... 
     failure:...]; 
[RK enqueueObjectRequestOperation:operation]; 

Đó là một hoạt động tốt. Ngoài ra, dữ liệu này được hiển thị trong chế độ xem danh sách chứa UIImageViews hiển thị các biểu tượng người dùng có liên quan. Tuy nhiên, các biểu tượng người dùng này không được tải xuống thông qua RestKit, nhưng thông qua thư viện AFNetworking cơ bản. UIImageView + AFNetworking hiện công việc cũng khá tốt (bao gồm cả bộ nhớ đệm):

[self setImageWithURLRequest:userIconRequest 
      placeholderImage:anonymousUser 
        success:nil 
        failure:...]; 

Vấn đề là những người 15 người sử dụng yêu cầu biểu tượng từ quan điểm hình ảnh chặn việc xử lý các yêu cầu RestKit cần được nạp trang kế tiếp ngay lập tức . Tôi có thể thấy danh sách hiển thị hàng "tải" cũng như các biểu tượng người dùng đầu tiên. Trong thời điểm hình ảnh cuối cùng tải xong trang tiếp theo sẽ tự gắn thêm.

Nhìn vào triển khai UIImageView + AFNetworking cho thấy rằng nó đang sử dụng một cá thể hàng đợi NSOperation riêng đang sắp xếp yêu cầu. Tuy nhiên điều đó không nên can thiệp vào RestKit mà tôi cho là vậy.

Đồng thời thêm NSOperationQueuePriority vào tất cả các yêu cầu không thay đổi điều gì. Có thể nội bộ, các yêu cầu mạng được tuần tự theo một cách khác? Làm thế nào tôi có thể ưu tiên các yêu cầu đó?

Xin cảm ơn trước.

Trả lời

0

NSURLConnection có số lượng kết nối tối đa không có giấy tờ.

Ngoài ra, hàng đợi hoạt động của UIImageView+AFNetworkingNSOperationQueueDefaultMaxConcurrentOperationCount yêu cầu tối đa hiện tại, có thể là lựa chọn không phù hợp cho trường hợp sử dụng của bạn theo this convincing-sounding AFNetworking discussion.

Bạn cần điều tiết. Tôi thấy hai giải pháp đơn giản:

  1. Sửa đổi UIImageView+AFNetworking để có, ví dụ: 4 hoạt động đồng thời tối đa.
  2. Sửa đổi UIImageView+AFNetworking để sử dụng hàng đợi hoạt động giống như RestKit, trong trường hợp này, mức độ ưu tiên bạn đặt sẽ là.
Các vấn đề liên quan