【问题标题】:Xcode - Accessing swift class from nested frameworkXcode - 从嵌套框架访问 swift 类
【发布时间】:2021-02-05 09:33:42
【问题描述】:

我有一个带有嵌套框架的 Xcode 项目。
嵌套框架包含一个我想使用的 Swift 类,它使用 @objcMembers public class

@objcMembers public class SPDetailedStringPicker : UIViewController {

}

我想在我的基础项目中使用这个 Swift 类。
我尝试了许多导入方法,例如使用:

#import "MyNestedFramework/MyNestedFramework-Swift.h"

也试过了:

#import "MyNestedFramework-Swift.h"

但没有运气。
项目结构如下:

- MyProject
  - MyNestedFramework.xcodeproj
    - Classes
      - The Swift class I want to use
  - MyProject
    - Classes
      - The Objective c class I want to use that swift class in

【问题讨论】:

标签: ios objective-c swift xcode import


【解决方案1】:

使用<> 而不是"

#import <MyNestedFramework/MyNestedFramework-Swift.h>

【讨论】:

  • 也试过这个,我得到'MyNestedFramework/MyNestedFramework-Swift.h'文件没有找到
  • 您是否将您的框架链接到您的目标?
  • 是的,我的目标可以访问框架内的所有其他内容,只是不能访问 swift 类
  • 您也可以打开生成的 MyNestedFramework.framework 文件,并检查名为“Headers”的文件夹是否存在 -Swift.h
  • 修复了!感谢您的帮助@arturdev - 我发现存在 -swift 文件后发现这是一个标题问题,打开 Build Phases -> Headers,并将我的 .framework 文件添加到项目中。现在我可以按照您的回答进行导入,并且代码完成会显示在框架中的其余文件中。
【解决方案2】:

感谢 @arturdev 的建议 - 我设法解决了这个问题。
建议在以下位置检查编译的框架头文件:

- MyProject
  - MyNestedFramework
    - Products
      - MyNestedFramework.framework

正在生成MyNestedFramework-Swift.h 头文件。然后我打开MyNestedFramework 下的构建阶段选项卡并打开Headers 部分,然后将实际的MyNestedFramework.Framework 添加到项目中。

我现在可以通过导入在我的基础项目中使用来自 MyNestedFramework 的 Swift 文件:

#import <MyNestedFramework/MyNestedFramework-Swift.h>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 2015-08-28
    • 1970-01-01
    • 2014-11-07
    • 2018-12-13
    相关资源
    最近更新 更多