我正在尝试这样做:
- (void) fullDMXReceived:(NSString*)finalData {
if (finalData changed since the last time fullDMXReceived ran) {
//DO SOMETHING
}
}
每隔50毫秒,会有一个新值。有时它与最后一个相同 - 在这种情况下,我不希望// dosome事发生。仅限NSString finalData更改。
我知道这可能是一个简单的答案,我一直在搞乱它,但无济于事。
谢谢!
答案 0 :(得分:5)
将最后一个字符串保存在变量中,针对旧值检查新值,如果两者相等则跳过操作。
当值不同时,运行操作,并更新先前值以匹配新值:
NSString *lastValue = nil; // <<== Make this an instance variable
...
if (![finalData isEqualToString:lastValue]) {
lastValue = finalData;
// Run the operation
...
}