Grand Central Dispatch未显示NSLog声明

时间:2013-01-02 04:31:52

标签: ios xcode grand-central-dispatch

我今天刚刚开始使用GCD,我认为我已经了解它是如何工作的,但是现在我对于为什么NSLog语句没有在控制台中打印/显示有点困惑。

基本上,如果我正确理解GCD,则需要完成几个步骤。

  1. 创建新队列
  2. 将阻止添加到队列
  3. 以下是我在其中一个文件中使用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语句的输出

2 个答案:

答案 0 :(得分:0)

可能是您的[serial handShake];正在阻止..尝试在此次调用之前输入日志

答案 1 :(得分:0)

试试这个。

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

而不是

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