仅在NSString更改时运行

时间:2012-12-08 03:24:00

标签: objective-c nsstring

我正在尝试这样做:

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

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

}

每隔50毫秒,会有一个新值。有时它与最后一个相同 - 在这种情况下,我不希望// dosome事发生。仅限NSString finalData更改。

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

谢谢!

1 个答案:

答案 0 :(得分:5)

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

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

NSString *lastValue = nil; // <<== Make this an instance variable
...
if (![finalData isEqualToString:lastValue]) {
    lastValue = finalData;
    // Run the operation
    ...
}