1

私は今日 GCD を使い始めたばかりで、それがどのように機能するかを理解していると思っていましたが、現在、コンソールに NSLog ステートメントが印刷/表示されない理由について少し混乱しています。

基本的に、GCD を正しく理解していれば、いくつかの手順を実行する必要があります。

  1. 新しいキューを作成する
  2. ブロックをキューに追加する

ファイルの 1 つで GCD を使用する方法の例を次に示します。

ViewControllerWelcome.m

 #import <ViewControllerWelcome.h"
 #import <dispatch/dispatch.h> // Grand Central Dispatch

 @interface ViewControllerWelcome ()
 {
 // declare private methods here
 dispatch_queue_t scan_queue;
 }
 @end

 @implementation ViewControllerWelcome

 - (void)viewDidLoad {
   [super viewDidLoad];


 // threading stuff - GCD
scan_queue = dispatch_queue_create("com.chrisrjones.kegcop", NULL);

// put blocks of code into curly braces to run on separate thread
dispatch_async(scan_queue, ^{

    [serial handShake];
    NSLog(@"execution reached here");

 });
}

@end

現在動作しているため、^{内のNSLogステートメントの出力が表示されません

4

2 に答える 2

0

あなたの[シリアルハンドシェイク]かもしれません;ブロックしています..この呼び出しの前にログを入れてみてください

于 2013-01-02T04:36:46.560 に答える
0

この方法を試してみてください。

 NSLog(@"execution reached here");
 [serial handShake];

それ以外の

[serial handShake];
NSLog(@"execution reached here");
于 2013-01-02T04:38:52.097 に答える