Переход к целевой цели проекта в Xcode> Общие> Установить «Требуется полный экран» (в строке «Скрыть состояние») до «Истина».
Этот метод абсолютно потокобезопасен. Гарантируется, что значение перечисления будет инициализировано только один раз, когда-либо, одним потоком, прежде чем оно будет использовано. Однако я не уверен, когда это происходит при загрузке класса перечисления или при первом обращении к самому значению перечисления. Использование этого метода на самом деле немного безопаснее, чем другие методы, потому что с помощью отражения нет даже способа получить вторую копию вашего синглтона на основе перечисления.
Как говорит @Mike, создание перечисления гарантированно потокобезопасно. Однако методы, которые вы добавляете в класс enum, не несут никакой гарантии потокобезопасности. В частности, метод leaveTheBuilding
может выполняться одновременно несколькими потоками. Если этот метод имеет побочные эффекты (изменяет состояние некоторой переменной), то необходимо подумать о защите этого метода (т.е. сделать его синхронизированным
) или его части.