Chọn cái nào NSOpertion và GDC trong IOS

Xin chào mọi nguời dạo gần đây mình nhận được góp ý của một expert trong nghề góp ý về bài viết của mình để bài viết của mình chất lượng hơn, cảm ơn anh Linh, sau lần góp ý đó mình mới nhận ra được mình đang thiếu sót nhiều chỗ, trong những bài viết tới mình sẽ cố gắng cải thiện để đem đến cho bạn đọc bài viết với nội dung đầy đủ cũng như trong bài viết này chúng ta sẽ tìm hiểu về sự khác biệt của NSOperationGDC tại sao đã có 1 thằng để dùng rồi lại sinh ra thêm thằng kia để làm gì bài viết hôm nay chúng ta cùng khám phá nhé

Sự khác biệt của NSOperation

GDC viết tắt của Grand Central Dispatch là một api nó ở mức độ thấp nhất được dựa vào nền tảng của C tương tác trực tiếp với Unix NSOperation là một class của ObjectiveC nó ở mức độ cao hơn so với GDC

Lợi ích của NSOperation

Ngoài việc NSOperation được xây dựng trên tầng GCD, ngoài ra nó còn được cung cấp những tính năng mà mà GDC không có. Có một vài lợi ích làm NSOperation là sự lựa chọn tuyệt vời hơn so với GDC

Life cycle NSOperation

vòng đời của của NSOperation gồm có các trạng thái sau pending-ready-executing-finish

Tất cả các trạng thái trên có thể nhảy vào cancel state

Dependencies

Trong NSOpertion hộ trợ dependencies không giới hạn số que thực hiện. Có thể thực thi các task theo một trình tự nhất định

Oserable

NSOperation and NSoperation que classes có rất nhiều giá trị để có thể observed sử dụng KVO (Key Value Observing) đây là một trong mà bạn muốn quan sát các trạng thái của một operation hoặc operation que

Pause Cancel Resume

Một trong những điểm lợi hại của NSOperation có thể tạm dừng, huỷ, tiếp tục khi bạn sử dụng GCD bạn không kiểm soát sâu được các task thực thi NSOperation có thể kiểm soát được vòng đời của operation

Control

NSOperation cũng có được nhiều lợi ích khác, ví dụ như bạn có thể thêm số queue mà bạn muốn hoạt động song song maxConcurrentOperationCount = 1 Là số operation que có thể hoạt động song song. Nếu không để số que cụ thể mà sử dụng mặc định, thì nó sẽ theo tài nguyên mà hệ thống cho phép, lúc đó có thể thực hiện nhiều task cùng một lúc

Vậy nên dùng thằng nào

Theo như Apple khuyên thì chúng ta nên dùng thằng nào có mức độ cao nhất đó chính là NSOperation Một operation có thể có dependencies vào một operartion khác nó là một tính năng hữu ích mà GCD không có nếu bạn cần thực thi một vài task theo một thứ tự cụ thể thì operation là một giải pháp tốt

GDC Thì thường dùng cho nhưng tác vụ đơn giản

Khi nào sử dụng NSOperation

Dependency management là một thứ tuyệt vời khi sử dụng NSOperation, Một operation này có thể phụ thuộc vào một operation khác đó là một tính năng hữu ích mà GDC không có, nếu bạn cần thực hiện một vài task theo thứ tự cụ thể thì NSOperation là một giải pháp tốt

Khi nào thì dùng GDC

GDC Thì thường dùng cho nhưng tác vụ đơn giản

Kết luận

Trong bài viết này chúng ta vừa khám phá điểm lợi và bất lợi của GDCNSOperation Api rõ ràng rằng có thể kết hợp cả 2 công nghệ là sự lựa chọn trong hầu hết các dự án

Written on