簡體   English   中英

NSKeyValueObservingOptionNew 和 NSKeyValueObservingOptionOld 有什么區別?

[英]What is the difference between NSKeyValueObservingOptionNew and NSKeyValueObservingOptionOld?

NSKeyValueObservingOptionOld
    Indicates that the change dictionary should contain the old attribute value, if applicable.

舊屬性值是什么意思?

當觀察到的關鍵路徑改變它的值時,觀察者會收到通知。 'change' 字典包含與觀察到的鍵路徑如何更改相關的信息。 該字典僅根據您在設置時提供的選項填充值

  • NSKeyValueObservingOptionNew - 指定您希望訪問密鑰路徑更改為的新值。
  • NSKeyValueObservingOptionOld - 指定您想要訪問更改密鑰路徑的舊值。

如果指定要發送這些舊值和/或新值,則可以使用這些鍵從change字典中訪問:

  • NSKeyValueChangeNewKey - 訪問新值。
  • NSKeyValueChangeOldKey - 訪問舊的/以前的值。

您可以執行以下操作:

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

並通過以下方式獲取值:

CGSize newSize = [[change objectForKey:@"new"] CGSizeValue];
CGSize oldSize = [[change objectForKey:@"old"] CGSizeValue];

這意味着作為observeValueForKeyPath:ofObject:change:context:參數的字典包含一個鍵值對,它告訴您觀察到的屬性的舊值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM