Я прочитал Objective – C может легко привести к коллизиям имен из-за своей природы, поэтому рекомендуется ставить префикс перед вашим кодом.
Как решить эту проблему, если ваше MyAwesomeApp
приложение для iOS, использующее две внешние библиотеки FooLibrary
и BarLibrary
, приводит к конфликтам имен, поскольку внутри FooLibrary
также используется BarLibrary
?
Сначала можно предложить удалить одну из ссылок на BarLibrary
, но вы не можете этого сделать, потому что, хотя оба являются BarLibrary
, на самом деле это две разные его версии, поэтому FooLibrary
зависит в реализации BarLibrary(v1)
, тогда как ваша MyAwesomeApp
зависит от реализации BarLibrary(v2)
.
В этот момент я понял, что две разные версии одной и той же библиотеки на самом деле две разные вещи, поэтому они не должны сосуществовать в одном проекте.
Есть ли другой способ решить эту загадку, кроме рефакторинга (переименованием) чужого кода, пожалуйста?