2011-08-13 37 views

Trả lời

12

Người quan sát được thông báo khi đường dẫn khóa quan sát thay đổi giá trị của nó. Từ điển ´change` chứa thông tin liên quan đến cách đường dẫn khóa quan sát đã thay đổi. Từ điển này chỉ được điền các giá trị theo các tùy chọn mà bạn cung cấp khi đặt

  • NSKeyValueObservingOptionNew - Chỉ định rằng bạn muốn có quyền truy cập vào giá trị mới mà đường dẫn chính thay đổi.
  • NSKeyValueObservingOptionOld - Chỉ định rằng bạn muốn có quyền truy cập vào giá trị cũ mà đường dẫn khóa đã thay đổi từ đó.

Nếu quy định phải được gửi các giá trị cũ và/hoặc mới có thể truy cập từ điển change sử dụng các phím:

  • NSKeyValueChangeNewKey - Để truy cập vào các giá trị mới.
  • NSKeyValueChangeOldKey - Để truy cập giá trị cũ/cũ.
1

Điều đó có nghĩa là từ điển là đối số của observeValueForKeyPath:ofObject:change:context: chứa cặp khóa-giá trị cho bạn biết giá trị cũ của thuộc tính được quan sát.

2

Bạn có thể làm một cái gì đó như:

[self addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil]; 

và nhặt các giá trị thông qua:

CGSize newSize = [[change objectForKey:@"new"] CGSizeValue]; 
CGSize oldSize = [[change objectForKey:@"old"] CGSizeValue]; 
Các vấn đề liên quan