Приведенный ниже код будет асинхронно загружать значение актива. Я жду его, используя цикл while.
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:aAudioLink options: nil];
[asset loadValuesAsynchronouslyForKeys:keys
completionHandler:^{
canExit = TRUE;
}];
while (canExit == FALSE) {
// NSLog (@"canExist = FALSE");
}
NSLog(@"canExist = TRUE");
Если оператор NSLog прокомментирован, как код выше, последний NSLog не будет вызываться. Если оператор NSLog НЕ прокомментирован, вызывается последний NSLog.
Блок и код вне блока выполняются в разных потоках, и оба они не являются основным потоком.
В чем причина этого?