2

グラフィカル インターフェイスに Cocoa を使用して OS X 用のアプリを作成しています。しかし、私の主なアルゴリズムは C++ で作成されました。インターフェイスは、NSTextFields と NSLevelIndicator のアルゴリズムのいくつかの値を表示するだけです。

画面は、リアルタイムでアルゴリズムからのデータで更新する必要があります。

私がしたことは、アルゴリズムからデータを読み取って画面に表示する NSThread です。しかし、私はそれが適切な方法だとは思いません。

あなたの提案は何ですか?

4

2 に答える 2

4

通常、メイン スレッドからのみ GUI を更新する必要があります。次のようなコードを使用して、いくつかの作業をメイン スレッドに送信できます。

dispatch_async(dispatch_get_main_queue(), ^{
    [myTextField setStringValue:@"a new string"];
});
于 2012-06-07T22:55:46.560 に答える
1

あなたが行くことができるいくつかのアプローチがあります:

  • メインスレッドで繰り返し NSTimer を使用して、アルゴリズムから値を取得し、それらを表示します
  • Ken Thomasesが書いたように、アルゴリズムからdispatch_asyncを使用してください
  • アルゴリズムから performSelectorOnMainThread を使用する
  • アルゴリズムに通知を NSNotificationCenter に投稿させる
于 2012-06-08T08:42:18.450 に答える