gpt4 book ai didi

iphone - 如何检查 objective-c 中的变量是否每秒或更少发生变化?

转载 作者:行者123 更新时间:2023-12-03 20:19:17 26 4
gpt4 key购买 nike

当我单击按钮时,我使用 if 语句来检查 BOOLEAN 的值。单击按钮时,如果值为 false,我想显示 UIActivityIndi​​cator,如果值为 true,我想推送新 View 。我可以很好地做到这一点,但我希望当用户已经单击按钮时 BOOLEAN 变为 true 时 View 会自动更改。

所以我的问题是如何检查值是否每秒或更短时间发生变化?

最佳答案

研究 KVO(键值观察),以便在变量更改其值时触发操作。

例如,在 View Controller 的 -viewWillAppear: 方法中,添加观察者:

[self addObserver:self forKeyPath:@"myBoolean" options:NSKeyValueObservingOptionNew context:nil];

在您的 -viewWillDisappear: 方法中,取消注册观察者:

[self removeObserver:self forKeyPath:@"myBoolean"];

执行最后一步非常重要,这样 -dealloc 方法就不会引发异常。

最后,设置观察者方法在 myBoolean 发生更改时执行某些操作:

- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if ([keyPath isEqual:@"myBoolean"]) {
// The BOOL value of myBoolean changed, so do something here, like check
// what the new BOOL value is, and then turn the indicator view on or off
}
}

键值观察模式是一种很好的通用方法,可以在对象的值在某处发生变化时触发某些操作。苹果写的不错"quick-start" document介绍了这个主题。

关于iphone - 如何检查 objective-c 中的变量是否每秒或更少发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2766748/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com