KVO设计模式

对于iOS开发者而言,iOS常用设计模式大家最喜欢的就是通知设计模式,但是通知模式有个很烦人的通病,那就是不好管理。所以在开发中一般能不用通知尽量不用通知。所以在通知和KVO之间我还是选择用后者。

在实现KVO的时候,有个很重要的一点就是被观察者的一个被观察的属性改变时必须使用set方法。所有一般在调用改变该属性的时候千万要记住。

这是我在被观察对象中定义的要被观察的属性。

@property(nonatomic,assign)NSInteger currentPage;

//PS 在需要变动该值得时候用set方法

//错误事例 _currentPage = 1;

//正确事例  slef.currentPage = 1;

//观察属性的时候不需要带下划线,因为系统会自动帮忙寻找待下划线的currentPage

//    添加观察者
    [被观察对象 addObserver:观察者 forKeyPath:@"currentPage" options:NSKeyValueObservingOptionNew context:nil];

//   观察者方法
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{


//   在此方法中能获取被观察值得变化

   NSInteger currentPage = [change[@"new"]integerValue];

//   实现自己想实现的方法

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值