У меня проблема с многопоточностью в Swift. У меня есть массив с некоторыми объектами в нем. Через делегата класс получает новые объекты примерно каждую секунду. После этого я должен проверить, есть ли объекты уже в массиве, поэтому я должен обновить объект, в противном случае я должен удалить/добавить новый объект.
Если я добавляю новый объект, мне сначала нужно получить некоторые данные по сети. Это гендельт через блок.
Теперь моя проблема в том, как мне синхронизировать эту задачу?
Я пробовал dispatch_semaphore, но этот блокирует пользовательский интерфейс, пока блок не будет завершен.
Я также попробовал простую переменную bool, которая проверяет, выполняется ли блок в настоящий момент, и тем временем пропускает метод сравнения.
Но оба метода не идеальны.
Какой лучший способ управлять массивом, я не хочу дублировать данные в массиве.