У меня есть код, который принимает строку NSString и использует эту строку для создания объекта.Мне нужно убедиться, что он не работает с одной и той же строкой дважды, например, если он вызывается из разных потоков или даже если один и тот же поток пытается сделать это рекурсивно.
Я могу начать с создания словаряиз моих инициализированных объектов и захват этого объекта, если передал ту же строку снова.Но это все еще оставляет проблему того, что происходит, когда объект запрашивается второй раз, когда другой код инициализирует его.
Я вижу, что Apple предоставила мне класс NSLock.Я в растерянности относительно того, как применить это к моей проблеме.Я вижу, что Apple позволяет мне называть свои замки, но я не вижу способа получить доступ к замку с данным именем.Полагаю, я мог бы составить словарь блокировок, но даже это не кажется пуленепробиваемым - что, если два потока пытаются сделать блокировку одного и того же имени одновременно?
Может ли кто-нибудь указать мне правуюнаправление здесь?