为什么应用会冻结"for"循环?

Jus*_*Boo 0 cocoa objective-c

为什么这个循环会冻结GUI?我怎么解决这个问题?

 -(void)freeze {

      for(int i=0; i<10000; i++) {

          NSLog(@"write!");
      }
 }
Run Code Online (Sandbox Code Playgroud)

如果我用IBAction(按钮)调用此循环,按钮和所有应用程序冻结按下它.循环完成后,一切正常.我该怎么办?

Tho*_*gum 5

您可以使用队列来避免阻止GUI,例如:

queue=dispatch_queue_create("my.queue", NULL);
dispatch_async(queue, ^{
    //do blocking stuff here
});
Run Code Online (Sandbox Code Playgroud)