當我爲第一個for循環設置了一個斷點時,我注意到它正在執行,但是這個值沒有被更新爲字符串「Viki」。相反,它只是NULL。異步塊給NULL
另外,代碼NSLog(@"Mahal");
的最後一行未被執行。爲什麼?
NSMutableArray *arr1;
for(int i=0; i<3; i++)
{
[arr1 addObject:@"Viki"];
}
NSLog(@"Hello");
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSLog(@"Taj");
for(int i=0; i<3; i++)
{
NSLog(@"%@", [arr1 objectAtIndex:i]);
}
dispatch_sync(dispatch_get_main_queue(), ^{ // 2
NSLog(@"Mahal"); // 3
});
});
用下面的代碼替換第一行的代碼: NSMutableArray * arr1 = [[NSMutableArray alloc] init]; –
@BabuLal另外,最後一行NSLog(@「Mahal」);沒有被執行。你能告訴我爲什麼? – Viki
您應該使用dispatch_async而不是dispatch_sync。 –