2011-07-15 23 views
6

Tôi cảm thấy rằng tôi không hoàn toàn hiểu sự khác biệt giữa KVO và NSNotification ... Chúng có vẻ giống nhau ... Bạn có thể làm một số ví dụ cho thấy khi nào là tốt nhất để sử dụng một phương pháp và khi ?NSNotification VS KVO

tôi không nói về Bind và IB, nhưng tôi có nghĩa là thêm Observer lập trình trong mã của tôi với NSNotificationCenter hoặc KVO

[self.preferenceController addObserver:self 
            forKeyPath:@"color" 
             options:NSKeyValueObservingOptionOld 
             context:@"Color-change" 
]; 
+0

KVO chỉ được sử dụng cho các thuộc tính và không thể được sử dụng để trả lời các phương pháp hoặc các hành động khác. NSNotification có thể được sử dụng cho các phương pháp và các hành động khác. Xem [tại đây] (https://blog.shinetech.com/2011/06/14/delegation-notification-and-observation/) – Honey

Trả lời

6

KVO chỉ hoạt động trên các giá trị, NSNotification có thể được sử dụng để thay đổi giá trị nhưng nó có thể được sử dụng cho bất cứ thứ gì và có thể mang trọng tải lớn hơn nhiều. Ví dụ: bạn có thể có NSNotification được đăng bất cứ khi nào tệp tải xuống xong và userInfo có thể chứa khoảng thời gian cần thiết, số lượng byte đã tải xuống và đường dẫn hệ thống tệp mà tệp đã được lưu vào đó.

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