Im создает статическую инфраструктуру iOS. Я хочу использовать сторонний код, поэтому я использую AFNetworking
в качестве примера в своей структуре. AFNetworking
популярен. Теперь я могу ощутить конфликты пространства имен. Какая здесь самая лучшая практика? Насколько я понимаю, у меня есть 3 варианта:
1) Постройте AFNetworking
в мою инфраструктуру, экспортируя заголовки. Это позволяет клиентам использовать версию AFNetworking
в моей библиотеке, но они не могут использовать другие фреймворки, которые также связывают AFNetworking
. Они полагаются на меня для получения обновлений для AFNetworking, если они основываются на нем.
2) Код в заголовках AFNetworking
, но включите в свои проекты сторонних разработчиков AFNetworking
. Это добавляет дополнительный шаг для пользователей инфраструктуры, они должны добавить источник AFNetworking
. В будущем могут существовать несовместимости версий, но, по крайней мере, если другая инфраструктура использует AFNetworking
, они могут использовать это в то же время.
3) Повторное пространство имен AFNetworking
и сохранить заголовки закрытыми. Таким образом, я избегаю конфликтов конфликтов имен каким-либо образом, за исключением того, что становится очень сложно обновить мою копию AFNetworking
. Окончательный бинарный бит становится немного больше, но все проблемы совместимости решены. Для меня это намного больше.
Есть ли у меня какие-либо другие варианты? Каковы наилучшие методы?