Objective-C: как переопределить / заменить классы в библиотеках - PullRequest
0 голосов
/ 11 октября 2011

Я должен использовать библиотеку «mylib.a» в своем коде, к источнику которой я не могу получить доступ, хотя я знаю, что есть некоторые классы, например, «NeededClass1», «NeededClass2». Моя проблема в том, что в моем собственном коде также созданы классы с именами «NeededClass1», «NeededClass2», и когда я включаю оба (lib и мои исходники), я получаю ошибки компоновки от компилятора.

Я не могу использовать следующие опции: 1) переименование моих собственных классов в нечто уникальное 2) включая только один из них (lib или мой собственный источник) 3) подклассы

Оба должны остаться. Будет ли какой-нибудь вариант «переопределить» классы в библиотеке с моими созданными классами или что-то подобное?

1 Ответ

1 голос
/ 11 октября 2011

Нет.Невозможно иметь классы с одинаковыми именами как в исходном коде, так и в библиотеке.И, честно говоря, тот факт, что вы столкнулись с этой проблемой, означает, что и вы, и автор библиотеки пренебрегали стандартной практикой добавления префиксов к классам с уникальным префиксом из 2-3 символов (обычно на основе вашего имени или названия вашей компании,Например, Matt Gemmell использует MG, например, MGTwitterEngine ).Ваш единственный выход - переименовать ваши классы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...