1

这是我正在尝试做的事情:

- (void) fullDMXReceived:(NSString*)finalData {

if (finalData changed since the last time fullDMXReceived ran) {
  //DO SOMETHING
}

}

每 50 毫秒,就会有一个新值进入。有时它与上一个值相同 - 在这种情况下,我不希望发生 //dosomething。仅当 NSString finalData 更改时。

我知道这可能是一个简单的答案,我一直在搞乱它,但无济于事。

谢谢!

4

1 回答 1

5

将最后一个字符串保存在变量中,检查新值与旧值,如果两者相等则跳过操作。

当值不同时,运行操作,并更新先前的值以匹配新的值:

NSString *lastValue = nil; // <<== Make this an instance variable
...
if (![finalData isEqualToString:lastValue]) {
    lastValue = finalData;
    // Run the operation
    ...
}
于 2012-12-08T03:29:01.280 回答