Tôi phải thực hiện một loạt các thao tác tải xuống và ghi cơ sở dữ liệu trong ứng dụng của mình. Tôi đang sử dụng NSOperation
và NSOperationQueue
cho cùng một.
Đây là kịch bản ứng dụng:
- Tìm nạp tất cả các mã bưu điện từ một nơi.
- Đối với mỗi mã bưu điện tìm nạp tất cả các ngôi nhà.
- Đối với mỗi ngôi nhà, tìm kiếm thông tin chi tiết về cư dân
Như đã nói, tôi đã xác định một NSOperation
cho mỗi nhiệm vụ. Trong trường hợp đầu tiên (Task1), tôi đang gửi yêu cầu đến máy chủ để tìm nạp tất cả các mã bưu điện. Người được ủy quyền trong NSOperation
sẽ nhận dữ liệu. Dữ liệu này sau đó được ghi vào cơ sở dữ liệu. Hoạt động cơ sở dữ liệu được định nghĩa trong một lớp khác. Từ NSOperation
lớp, tôi đang gọi hàm ghi được định nghĩa trong lớp cơ sở dữ liệu.
Câu hỏi của tôi là liệu hoạt động ghi cơ sở dữ liệu xảy ra trong luồng chính hay trong một luồng nền? Khi tôi đang gọi nó trong một, NSOperation
tôi đã mong đợi nó chạy trong một chuỗi khác (Không phải MainThread) như NSOperation
. Ai đó có thể vui lòng giải thích kịch bản này trong khi xử lý NSOperation
và NSOperationQueue
.