Код ниже обновит backgroundColor
сразу после commit
.Ведение вложенного CATransaction?
[CATransaction begin];
self.view.backgroundColor = [UIColor redColor];
[CATransaction commit];
sleep(5);
Но с вложенным явным обновлением CATransactions
, экрана только при самой внешней транзакции.
[CATransaction begin];
[CATransaction begin];
self.view.backgroundColor = [UIColor redColor];
[CATransaction commit];
sleep(5);
[CATransaction commit];
Так что это очень странно, потому что мы знаем, что runloop создаст внешнюю самую неявную транзакцию в каждом цикле. Почему это implicit transaction
не рассматривается как внешняя большая транзакция, когда explicit transaction
совершает?
Так что, когда берут о вложенных транзакциях мы всегда относимся к явным сделкам? – Karl
Да, ваш второй пример - о вложенных явных транзакциях, одна пара «begin ... commit» внутри друг друга. Явная транзакция не «вложена» в неявную транзакцию каким-либо интересным способом, потому что она зафиксирована и, следовательно, не имеет отношения к тому, что позже будет подразумевать неявная транзакция. – matt