2013-04-28 6 views
0

Предположим, что у меня есть фреймворк с именем A.framework с файлом A.h в качестве основного импорта. Стандартный способ клиентское приложение будет использовать эту структуру является:Изменение импорта для фреймворков iOS

#import <A/A.h>

Предположим, что в настоящее время существует другой рамки B.framework, о функциональности я хочу подводить/переопределение/реализовать в моем A.framework так что клиентское приложение действительно может разъединить B.framework и только ссылку на A.framework, чтобы получить всю функциональность B.framework. Другими словами, у меня реализованы все функциональные возможности B.framework «S внутри A.framework и есть файл, который вы могли бы импортировать через

#import <A/B.h>

, что если пользователь заменил все #import <B/B.h> звонки с #import <A/B.h> , они получили бы всю функциональность B.framework.

Мой вопрос: могу ли я позволить пользователю просто разъединить B.framework без замены всех своих #import <B/B.h> звонков с #import <A/B.h> и каким-то образом имеют те #import <B/B.h> импорт из A.framework вместо этого?

ответ

1

Как вы описали его, да. Если все ваши классы/методы/и т. Д. находятся внутри A/B.h, которые будут получены от B/B.h, B.framework больше не требуется, если A.framework не ссылается непосредственно на B.framework ... если это имеет смысл ...

Думайте об этом так :

Not allowed

Если вы отменяя связи B.framework в этом случае вы получите сообщение об ошибке, когда вы пытаетесь сделать что-нибудь в Bh, потому что файл Bh в A.framework требует B.framework функционировать.

Однако, если это выглядит следующим образом:

Allowed

Так что ваши основные компоненты B.framework фактически внутри A.framework (вы консолидировали их), т.е. A.framework никогда ссылка <B/*>, вы можете это сделать!

Надеюсь, что вам поможет.

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