我写了如下苹果的一个简单的测试用例文档 ,我没有看到,我很期待的结果。
下面的代码:
- (void)testExample2
{
NSLog(@"1");
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"3");
dispatch_semaphore_signal(semaphore);
});
NSLog(@"2");
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
NSLog(@"4");
dispatch_release(semaphore);
}
我希望阅读:1,2,3,4,而是我的控制台只是表明我的1,3。
我已经能够解决使用问题DISPATCH_TIME_NOW
在while循环与NSLoop一起下锅,但上面的代码应该用什么样工作,对吧?
干杯...
UPDATE
我才意识到,我应该使用单独的队列,而不是dispatch_main_queue()