ios 中判断有没有添加kvo

ios 中判断有没有添加kvo,第1张

一、KVO是注册观察者模式,是一种监听模式。(1)通过注册观察者addObserve的方法,可以获取监听的对象变化的值,从而实现要变化的方法。(2)例如有两个滑动视图,希望其中一个视图滑动时候,另一个视图也跟着变化,同时变化相同的偏移量,那么可以注册一个观察者,观察视图1的偏移量变化,在观察者方法-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id>*)change context:(void *)context中,根据change的值获得视图1的偏移量,并让视图二做出相同的偏移。二、KVC是访问对象属性的方法,K即key,V即Value,C是coding系统的编码方式。(1)通过setValue:forKey的方式,给对象的某一个属性赋值,在未公开属性的情况下就可以使用这种方法.(2)比如有一个Person类,有一个Person *person = [[Person alloc] init]对象,想给个name属性,并给name一个值“张三”,就可以写成[person setValue:"张三" forKey:"name"],如果说person又一个公开的name属性,那么上一句话就等于person.name=@"张三"。

您好,很高兴为您解答。

你的意思是两个view,通过点击手势进行判断,如果是这样,设置tag来区分<pre t="code" l="java"> view1.tag = 1

<br>

<br> UITapGestureRecognizer *tapGestureRecognizer1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)]

<br>

<br> [view1 addGestureRecognizer:tapGestureRecognizer]

<br>

<br>

<br>

<br> view2.tag = 2

<br>

<br> UITapGestureRecognizer *tapGestureRecognizer2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)]

<br>

<br> [view2 addGestureRecognizer:tapGestureRecognizer2]

<br>

<br>

<br>

<br>- (void)tapped:(UITapGestureRecognizer *)gesture

<br>

<br>{

<br>

<br> UIView *targetview = gesture.view

<br>

<br> if(targetview.tag == 1) {

<br>

<br>

<br>

<br> }

<br>

<br>}

如若满意,请点击右侧【答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,!

~ O(∩_∩)O~


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

原文地址: https://outofmemory.cn/bake/11726243.html

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

发表评论

登录后才能评论

评论列表(0条)

保存