objective-c – 来自observeValueForKeyPath的参数:ofObject:change:context:

objective-c – 来自observeValueForKeyPath的参数:ofObject:change:context:,第1张

概述我想知道这个方法的参数将返回. - (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(v 我想知道这个方法的参数将返回.

- (voID) observeValueForKeyPath:(Nsstring *)keyPath                       ofObject:(ID)object                         change:(NSDictionary *)change                        context:(voID *)context;

在the documentation它说

keyPath The key path,relative to object,to the value that has changed.

object The source object of the key path keyPath.

change A dictionary that describes the changes that have been made to the
value of the property at the key path
keyPath relative to object.

context The value that was provIDed when the receiver was registered to
receive key-value observation
notifications.

你可以为我解释这些参数,因为我发现文档有点难以理解.

解决方法 当您注册KVO通知时,您指定了一个关键字addobserver:. keypath参数只是这个值被返回给你.对象参数是发送addobserver:消息的对象.这些可用于区分不同关键字/对象的KVO通知(例如,如果您正在观察多个值).

change是一个包含有关价值变化性质的信息的字典.它可能包含新值或旧值,或者对于多对多关系,它可能包含已更改的索引.其内容在“变更部分接收通知”部分的KVO Programming Guide中有更好的描述.

注册通知时,您还可以指定上下文值.最后一个值只是这个值返回给你.如果您没有任何上下文相关信息,则将nil传递给addobserver:是合适的.

有关KVO系统的一些缺点(以及一些解决他们的帮助课)的一个很好的讨论,请参见Mike Ash’s great blog post

总结

以上是内存溢出为你收集整理的objective-c – 来自observeValueForKeyPath的参数:ofObject:change:context:全部内容,希望文章能够帮你解决objective-c – 来自observeValueForKeyPath的参数:ofObject:change:context:所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1029297.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存