У меня есть проект «MyProject», которые используют CocoaPod «MyPOD», в PODFile у меня есть:Swift 3 | Получить текущий класс проекта в CocoaPod
pod 'MyPod', :path => '~/Desktop/iOS/MyPod'
В моем проекте «MyProject» У меня есть класс MyClass. Я хотел бы сделать в моем CocoaPod «MyPOD» =>
MyClass.myFunc()
Конечно, не работает, так как «MyPOD» не знает «MyProject», но есть способ сделать это? Могу ли я передать экземпляр этого класса или что-то еще?
TY
Спасибо за ваш ответ, я думаю, вы поняли, в чем моя проблема. Btw Я не могу использовать 'f (type: MyClass.self)', поскольку MyPod не знает MyClass! Или я что-то испортил? – Aximem
Ну, вы называете 'f' внутри своего проекта, а не внутри своего контейнера. Ваш модуль может работать только со своими собственными объектами и типами, а те, которые передаются ему из проекта, который его использует. Протокол позволяет вашему модулю знать, что тип имеет метод myFunc, но он не знает, как именно он находится в MyClass, так как он объявлен вне вашего контейнера. Вам просто нужно поместить все методы, которые вы хотите вызвать внутри своего модуля в общедоступном протоколе. – timaktimak
Хорошо, спасибо, я понимаю, моя проблема в том, что я буду использовать множество контейнеров. Все они должны будут вызвать функцию f. Я не могу объявить протокол во всех моих контейнерах, и я также не могу вызвать f из проекта. Я думаю, что я отказываюсь от этого, я ищу несколько дней, и я не могу найти способ проуперировать это. Спасибо, в любом случае ;) – Aximem