В Swift у вас есть доступ к более мощным средствам выражения глобальной синхронности значений - особенно на уровне типа - чем ключевое слово volatile. Например, вы можете выбрать блокировки для синхронизации доступа для чтения и записи к переменной. Вы можете использовать MVar, чтобы указать, что переменная должна иметь только одно допустимое состояние для нескольких потоков. Или вы можете просто не указывать проблему в Swift. Поскольку язык вытесняет изменчивые квалификаторы из импортированного кода, кажется, что приложения, которые хотят использовать эту функцию, должны придерживаться использования C или Objective-C и представлять интерфейс для любого заинтересованного кода Swift.
'volatile' не делает переменную доступной из других потоков. Он используется для указания того, что переменная ведет себя как аппаратный регистр. Вместо этого используйте блокировку мьютекса. – Potatoswatter
Этот вопрос не соответствует теме, поскольку исходное помещение неверно, поскольку volatile не делает, как вы утверждаете, поэтому мы не можем его преобразовать – Mark
Извините за мой плохой псевдокод. Я знаю, что сказал Potatoswatter. При портировании моего кода Objective-C требуется volatile, потому что другой поток может обновлять переменную x, а ссылки должны указывать самое последнее значение. –