1

これが私がやろうとしていることです:

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

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

}

50 ミリ秒ごとに、新しい値が入ります。前回と同じ場合もあります。この場合、//dosomething を実行したくありません。NSString finalData が変更された場合のみ。

私はこれがおそらく簡単な答えであることを知っています。私はそれを少しいじっていましたが、役に立ちませんでした。

ありがとう!

4

1 に答える 1

5

最後の文字列を変数に保存し、新しい値を古い値と照合して、2 つが等しい場合は操作をスキップします。

値が異なる場合は、操作を実行し、以前の値を更新して新しい値と一致させます。

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