开发者社区> 问答> 正文

IOS 如何监听一个BOOL值的是否改变?

RT,我项目里有要删除蓝牙外设里面保存的记录的功能,我设置了一个BOOL值来判断是否删除成功,我要如何监听这个值改变了而去进行对应操作?

我去查了下KVO,然后现在已经完成了这个需求,我用的方法是直接创建一个NSObject类,类里设置一个BOOL属性,

@interface clean : NSObject
@property(nonatomic)BOOL deleteSuccess;
@end

然后到要监听操作的类里import "CleanCodeController.h"
import "clean.h"
@interface CleanCodeController ()
@property(nonatomic,strong)clean *c;
@end

(void)viewDidLoad
{
[super viewDidLoad];
self.c = [[clean alloc] init];
[self.c setValue:@NO forKey:@"deleteSuccess"];
[self.c addObserver:self
forKeyPath:@"deleteSuccess"
options:NSKeyValueObservingOptionNew
context:nil];
}
(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog(@"值改变操作");
}
-(void)dealloc
{
[self.c removeObserver:self forKeyPath:@"deleteSuccess"];
}

这样的确可以监听到BOOL值的改变了,还想问问还有没有更简单的方法?

展开
收起
a123456678 2016-07-29 10:10:37 2599 0
2 条回答
写回答
取消 提交回答
  • 推荐 KVC

    2019-07-17 20:01:35
    赞同 展开评论 打赏
  • 成为BOOL观察者,这个值有变化就通知你
    用这个方法
    [ addObserver: forKeyPath: options: context: ];

    然后实现这个方法 一点BOOL值有变动 就会调用下面这个方法
    -(void)observeValueForKeyPath:(NSString )keyPath ofObject:(id)object change:(NSDictionary )change context:(void *)context

    2019-07-17 20:01:35
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
移动 App 性能监测实践(iOS篇) 立即下载
From Java_Android to Swift iOS 立即下载
From Java/Android to Swift iOS 立即下载