2013-03-07 46 views
5

Hi Tôi hiện đang xây dựng một ứng dụng trong đó có các thuộc tính sau:Làm thế nào để bạn xử lý các luồng riêng biệt tìm nạp dữ liệu trong iOS?

  1. sử dụng Core Data để lưu trữ
  2. có một thức ăn mà hiển thị một mục tại một thời điểm
  3. nếu ra khỏi mục, ứng dụng sẽ gọi tìm nạp từ máy chủ không đồng bộ

Xử lý tìm nạp không đồng bộ đã được chứng minh là khá phức tạp.

Hiện tại, chúng tôi đang lưu trữ các mục được tìm nạp trực tiếp từ máy chủ vào Dữ liệu chính.

Mỗi khi ứng dụng cần một mục mới, chúng tôi sẽ truy vấn Dữ liệu chính cho một mục không nhìn thấy.

Chúng tôi đang thấy một số tác động đáng kể liên quan đến hiệu suất của ứng dụng do truy vấn liên tục này của Dữ liệu cốt lõi. Chúng tôi đã nghĩ đến việc sử dụng một Array trong bộ nhớ và giữ một chỉ mục cho nó nhưng không đồng bộ khi tìm nạp một khi chúng ta ra khỏi mục được chứng minh là quá phức tạp vì chúng ta phải sử dụng khóa và các biện pháp đồng thời khác để giữ cho chuỗi mảng an toàn.

Các bạn có bất kỳ đề xuất nào về cách tôi có thể giảm tổng số cuộc gọi vào Dữ liệu chính không?

+2

Bạn đã lược tả ứng dụng của mình và xác nhận tìm nạp chậm? –

+2

Loại đồng thời nào bạn đang sử dụng? – mattyohe

+1

Các triệu chứng của vấn đề hiệu suất là gì? CoreData có hệ thống bộ nhớ đệm của riêng nó trong MOC của nó. – Jeremy

Trả lời

0

Bạn cần phải giữ các chuyến đi đến cửa hàng liên tục ở mức tối thiểu để tìm số lượng mặt hàng hợp lý mà bạn mong muốn hiển thị. Dữ liệu cốt lõi rất hiệu quả trong việc làm hỏng các đối tượng được quản lý, do đó, dấu chân bộ nhớ không phải là vấn đề.

Khi bạn đang hết các mục để hiển thị nhưng vẫn còn một số mục còn lại trong mảng, hãy thử và tìm nạp thêm. Tại thời điểm này, nếu bạn không nhận được kết quả, hãy gửi hàng đợi không đồng bộ với bối cảnh đối tượng được quản lý riêng của nó, tạo đối tượng được quản lý mới, lưu và thông báo cho ngữ cảnh chính để có thể hợp nhất các thay đổi. Quay lại đầu trang

Khi đã xong, bạn quay lại tìm nạp các mục mới.

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