Да, конечно. Причины две. Во-первых, переменная в swift не atomic, т.е. в двух разных потоках этот массив может содержать и не содержать новые данные. Во-вторых, это singleton, т.е. не thread-safe - обращаясь из разных потоков к ImageDataLoader.shared , вы получаете не синхронизованные экземпляры этого объекта. Другими словами, синхронизация массива не решит проблему, и отказ от синглтона тоже не решит. Надо делать и то и другое. Поищите другое решение.
Для таких вещей лучше использовать NSCache вместо массива
Обсуждают сегодня