Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone NSKeyValueObservingOptionNew和NSKeyValueObservingOptionOld之间有什么区别?_Iphone_Key Value Observing - Fatal编程技术网

Iphone NSKeyValueObservingOptionNew和NSKeyValueObservingOptionOld之间有什么区别?

Iphone NSKeyValueObservingOptionNew和NSKeyValueObservingOptionOld之间有什么区别?,iphone,key-value-observing,Iphone,Key Value Observing,什么是旧属性值?它意味着作为对象:更改:上下文:的参数的字典包含一个键-值对,它告诉您观察到的属性的旧值。当观察到的键路径更改其值时,会通知观察者。“change”字典包含与观察到的密钥路径如何更改相关的信息。此字典仅根据设置时提供的选项填充值 NSKeyValueObservingOptionNew-指定您希望访问密钥路径更改为的新值 NSKeyValueObservingOptionOld-指定您希望访问密钥路径所更改的旧值 如果指定发送这些旧值和/或新值,则可使用以下键从更改字典访问:

什么是旧属性值?

它意味着作为对象:更改:上下文:的参数的字典包含一个键-值对,它告诉您观察到的属性的旧值。

当观察到的键路径更改其值时,会通知观察者。“change”字典包含与观察到的密钥路径如何更改相关的信息。此字典仅根据设置时提供的选项填充值

  • NSKeyValueObservingOptionNew
    -指定您希望访问密钥路径更改为的新值
  • NSKeyValueObservingOptionOld
    -指定您希望访问密钥路径所更改的旧值
如果指定发送这些旧值和/或新值,则可使用以下键从
更改
字典访问:

  • NSKeyValueChangeNewKey
    -访问新值
  • NSKeyValueChangeOldKey
    -访问旧的/以前的值

您可以执行以下操作:

NSKeyValueObservingOptionOld
    Indicates that the change dictionary should contain the old attribute value, if applicable.
并通过以下方式获取值:

[self addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];
CGSize newSize = [[change objectForKey:@"new"] CGSizeValue];
CGSize oldSize = [[change objectForKey:@"old"] CGSizeValue];