Tôi đang sử dụng NSProgress để truyền đạt tiến độ tải xuống tệp trong ứng dụng iOS của tôi. Đây là một lớp học có mục đích chung và tôi hơi sợ sức mạnh vốn có của nó, đặc biệt là với hai thuộc tính xử lý hoàn thành. Có một để xử lý hủy bỏ, và một cho tạm dừng (nhưng không ai để hoàn thành, mà có lẽ là một hit ...)Với NSProgress, các trình xử lý hoàn thành có dành cho giao diện người dùng hoặc bộ điều khiển tải xuống không?
các trình xử lý này là gì? Mã thực hiện việc tải xuống có thể đặt logic trong các phương thức này để xử lý các yêu cầu hủy bỏ và tạm dừng do người dùng tạo. Tuy nhiên, không có gì ngăn cản một khách hàng ghi đè lên các trình xử lý bằng mã UI.
Vì vậy, nó dành cho giao diện người dùng? Tôi không chắc làm thế nào đây là một mô hình hữu ích, kể từ khi giao diện người dùng sẽ được bắt nguồn từ việc hủy bỏ hoặc tạm dừng anyway. Ngoài ra, nếu bạn đang sử dụng đối tượng tiến trình để đồng thời trình bày tiến trình trên nhiều phần tử giao diện người dùng (cách nó được sử dụng trong MacOS), các phần tử giao diện người dùng khác nhau có khả năng muốn xử lý hoàn thành của riêng nó.
Sử dụng trình xử lý để truyền đạt hành động của người dùng quay lại bộ điều khiển tải xuống có vẻ là mẫu hữu ích nhất, nhưng sau đó tôi đã mong đợi trình xử lý sẽ được thiết lập lúc khởi tạo và sau đó vẫn chỉ đọc.
Tôi thiếu gì ở đây?
(PS Để bây giờ tôi đang đơn giản là không sẽ sử dụng những bộ xử lý và dựa vào KVO. Tuy nhiên, tôi có một cảm giác ngứa mà tôi đang bỏ lỡ một số ý tưởng cơ bản đằng sau lớp)
Trông giống như một lớp học riêng tư với tôi, bạn có chắc chắn muốn sử dụng nó không? – Ian
Nó không phải là riêng tư. Xem [Tài liệu dành cho nhà phát triển của Apple] (https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSProgress_Class/Reference/Reference.html) –
Tệ của tôi, tôi không có ý tưởng nào tồn tại. – Ian