Swift框架消费者的可传递导入

Swift框架消费者的可传递导入,swift,Swift,假设我有一个框架,它定义了一个协议,该协议依赖于第三个框架导出的符号: 导入核心位置 公共协议BarsAPIClient{ func getbar(位置周围:CLLocation,完成:@escaping(Result)->Void) } 现在,在我的应用程序中,我想添加协议的具体实现: import MyFramework class BarsAPIClientImpl: BarsAPIClient { func getBars(around location: CLLocatio

假设我有一个框架,它定义了一个协议,该协议依赖于第三个框架导出的符号:

导入核心位置
公共协议BarsAPIClient{
func getbar(位置周围:CLLocation,完成:@escaping(Result)->Void)
}
现在,在我的应用程序中,我想添加协议的具体实现:

import MyFramework

class BarsAPIClientImpl: BarsAPIClient {
    func getBars(around location: CLLocation, completion: @escaping (Result<[String], Error>) -> Void) {
        // actual implementation goes here
    }
}
导入MyFramework
类BarsAPIClientImpl:BarsAPIClient{
func getbar(位置周围:CLLocation,完成:@escaping(Result)->Void){
//实际实现在这里
}
}
但是,由于
CLLocation
不可见,上述代码将无法编译:

我还可以通过导入
CoreLocation
轻松解决这个特定错误。但是,对于具有多个依赖项的更复杂的情况,这可能会变得单调乏味


所以,问题是,模块是否可以声明其所有公共依赖项,以便该模块的使用者自动链接到这些依赖项?

目前有两种方法可以做到这一点

  • 您可以为此使用未记录的swift功能,这可能会在下一个swift版本中中断
  • 将其添加到
    MyFramework
    中的swift文件中

    @\u导出导入核心位置
    
  • 您可以使用objc swift互操作的当前行为,其工作方式相同
  • 使用以下内容在
    MyFramework
    中创建
    MyFramework.h
    公共伞头

    #import <CoreLocation/CoreLocation.h>
    
    #导入
    
    您是否尝试过:@iOSArchitect.com这个问题看起来像是关于合并多个框架的问题,不幸的是,这对我的情况没有帮助。