Tôi có một thao tác tải dữ liệu cần phải chạy khỏi chuỗi chính để tránh các sự cố chặn tiềm ẩn. Để làm điều này, tôi sử dụng một NSOperationQueue và NSOperations.Làm cách nào để chặn NSOperation cho đến khi NSOperationQueue kết thúc?
Một vấn đề nảy sinh, tuy nhiên, là một trong các hoạt động tồn tại để sinh ra các hoạt động bổ sung dựa trên thông tin đến. Việc cố gắng giải quyết vấn đề này cũng giải quyết được một số vấn đề nhỏ mà tôi có ở nơi khác, vì giải pháp mà tôi đã đạt được là cung cấp cho NSOperation hàng đợi của riêng nó cho các nhiệm vụ phụ.
Vấn đề là ngay sau khi thoát 'chính', NSOperation sẽ được đánh dấu là 'đã hoàn thành', bất kể có hay không hàng đợi phụ được xử lý xong; làm cách nào để ghi đè hành vi đó?
Có vẻ như bạn đang tìm kiếm [đồng thời 'NSOperation'] (http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSOperation_class/Reference/Reference.html)? –
@CarlVeazey Không ... chính xác, nhưng có vẻ như các bước được sử dụng để tạo ra một NSOperation đồng thời làm điều tương tự tôi thực sự đang tìm kiếm. Bạn phải ghi đè cách bắt đầu xử lý phương thức isFinished/isExecuting, và tôi nghĩ đó chính xác là những gì tôi cần làm ở đây. Tôi cần phải ghi đè lên bắt đầu để nó không thiết lập isFinished ngay lập tức kết thúc chính. Có nghĩa là xử lý các công cụ KVO khi tôi thay đổi những tài sản, oh niềm vui. – RonLugge
@CodaFi Tôi không chắc chắn liệu tôi có làm rõ bản thân mình hay không, nhưng câu trả lời bạn đề xuất có vẻ không hợp lý. Phụ thuộc ngăn chặn một hoạt động từ thực hiện, họ không ngăn chặn nó từ kết thúc khi nó bắt đầu thực hiện. Ít nhất, đó là những gì các tài liệu tham khảo xuất hiện để nói. – RonLugge