【问题标题】:Objective-C Bridging Header not getting created with Xcode 8没有使用 Xcode 8 创建 Objective-C 桥接头
【发布时间】:2017-01-29 14:33:13
【问题描述】:

我正在尝试将 Objective-c 库添加到我的 Swift 3 项目(Xcode 8 IDE)中。但是目标 c 接口标头不会自动生成。我尝试手动添加桥接头,但显示链接错误,提示找不到桥接头 .h。任何帮助将不胜感激:)

【问题讨论】:

    标签: swift3 xcode8 bridging-header


    【解决方案1】:

    这里是问题的解决方案。

    • 创建一个新的头文件并将其命名为“your project name-Bridging-Header.h”。文件 必须保存到您的项目文件夹中
    • 选择您的 xcode 项目 -> 选择您的构建目标 -> 选择构建设置 -> 单击顶部的“全部”选项 -> 搜索 Swift Compiler - General
    • 选择Objective-C Bridging Header 项并双击其值字段(同一行的右侧)。将出现一个弹出窗口,您可以在其中输入桥接头文件路径(按照以下步骤提供头文件路径)。
    • 打开查找器并将桥接头文件拖放到弹出窗口中。现在它将为桥接头创建一个绝对路径。要制作相关路径,您可以将路径指定为 $(PROJECT_DIR)/$(PROJECT_NAME)/$(PROJECT_NAME)-Bridging-Header.h

    • 单击外部以保存值。完毕!!现在您可以将您的 Objective-C 库(例如#import "SVProgressHUD.h")导入到桥接文件并开始在您的 swift 项目中使用它。

    希望这对某人有所帮助。 :)

    【讨论】:

    • 这与stackoverflow.com/a/24005242/1187415中描述的过程有什么不同,从“在某些情况下,特别是在使用ObjC框架时,...”
    • 如果拖拽,会得到一个绝对路径,可以将项目路径替换成$(SRCROOT)使其相对
    • 如果没有“Swift Compiler - General”怎么办?
    • @Aleksandr 我在过去的一个小时里一直在寻找这个问题的答案,因为我遇到了同样的问题......选择顶部的“全部”应该可以找到的。
    • 更简单的方法是将一个空的 .m 文件放到项目中。 Xcode 现在会提示您自动创建桥接头。
    【解决方案2】:

    Objective C 头文件创建步骤

    1. 文件 -> 新建 -> 文件 -> 头文件

    2. 这样命名你的头文件yourAppName-Bridging-Header

    3. 现在点击您的项目 -> 构建设置

    4. 基本更改为全部

    5. 搜索桥接

    6. 你会得到如下图所示的搜索结果

    添加后

    1. 在那双击Objective-C Bridging Header右侧,输入如下

      例如,yourAppName/yourAppName-Bridging-Header.h

    2. 需要如下导入

    1. 就是这样

    快乐编码:)

    【讨论】:

      【解决方案3】:

      简单地创建一个新的 Objective-C 文件并让 Xcode 负责设置所有内容的所有细节似乎是最简单的。完成后,您可以删除 Objective-C 文件。

      1. 在项目资源管理器中右键单击并选择新文件
      2. 选定的 Objective-C 文件
      3. 将其命名为 delete_me 或其他名称
      4. 系统会提示您创建一个桥接文件并说是
      5. 删除你创建的文件(可能是delete_me.m

      【讨论】:

      • 我没有得到第 4 步的提示。
      【解决方案4】:

      如果有多个目标,请确保 swift 类是该目标的成员,否则将不会生成文件。
      Xcode 8.3

      【讨论】:

        【解决方案5】:

        斯威夫特 5

        简单的方法

        1--cmd+n 
                      then select 
        2--Objective-C File (name your file it like this YourAppName-Bridging-Header)
        
               if popup arrive for bridging header then select 
        
        3--YES
               if not 
               //MARK:-click on your 
        4--Project->BuildSettings
               //MARK:- in search     
        5--Bridging Header
        6--Double click and paste bottom line and done
        $(PROJECT_DIR)/$(PROJECT_NAME)/$(PROJECT_NAME)-Bridging-Header.h
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-10
          • 1970-01-01
          • 2015-09-14
          • 2012-08-23
          • 2016-10-30
          • 2021-02-22
          相关资源
          最近更新 更多