2013-10-08 3 views
4

У меня есть модули, но нет исходного кода от двух разных людей, которые включают в себя один и тот же класс. Есть ли способ выборочно загружать классы из модулей, чтобы дублированный класс не сталкивался?Селективная загрузка классов в Objective-C

Да, я знаю об этом альтернативном решении, которое предполагает загрузку и разгрузку, и скорее сделало бы это путем выборочной загрузки классов и выполнения с ним. What is the best way to solve an Objective-C namespace collision?

+0

Если эти классы сталкиваются, найдите другую библиотеку, потому что это указывает на отсутствие планирования и предвидения на чьей-то стороне. – CodaFi

+1

Насколько я помню, NSClassFromString может быть «контекстно-зависимым» и извлекать разные классы в зависимости от того, где он выполняется (который загружает модуль). Но это далеко не «документально подтвержденная функция» и не должно использоваться ни для чего другого, кроме как для прихожей. –

+1

http://stackoverflow.com/a/19317241/2043621 – AppFzx

ответ

1

Если код написан в .framework, вы можете загрузить с помощью чего-то вроде #import <myFramework/MFMyCode.h>. Нет возможности выборочно загружать класс в объекте-c для iDevices, если вы находитесь на Mac, вы можете использовать метод, связанный с вашим вопросом.

Я столкнулся с этой проблемой, когда захотел условно загрузить класс из проекта, если этот проект существует, и не загружать его, если это не так. К сожалению, нет реального способа решить эту проблему, поскольку импорт выполняется во время компиляции.

+0

Похоже, на Apple это не ответ ... –

Смежные вопросы