__block int x = 5;
dispatch_queue_t abe = dispatch_queue_create([[NSString stringWithFormat:@"abe'sQueue.%@", self] UTF8String], NULL);
dispatch_sync(abe, ^{
NSLog(@"%@", [self returnSomething]);
dispatch_async(dispatch_get_main_queue(), ^{
x = 20;
});
});
NSLog(@"%d", x);
メインスレッドへのネストされたコールバックが値を非同期的に変更しても、上記の結果は常に 'x' のログに記録された値である 5 になります。どこが間違っているかについてのアイデアはありますか?