在ObjC和Swift之间引用不同Xcode目标中的常量

时间:2017-07-21 06:09:01

标签: ios objective-c swift xcode

我在Xcode项目中有两个目标:

  1. Objective-C app target
  2. Swift UI自动化目标
  3. 我在应用目标的头文件中有许多全局常量,我想在自动化代码中使用这些常量ID,例如:头文件包含:

    static NSString *const APP_TUTORIAL_VIEW_ACI = @"tutorial_view";
    static NSString *const APP_TUTORIAL_SCROLL_VIEW_ACI = @"tutorial_scroll_view";
    

    但如果我尝试在自动化Swift代码中访问例如APP_TUTORIAL_VIEW_ACI,则无法找到它。

    如何链接它以便可以在Swift自动化目标中使用全局常量?

1 个答案:

答案 0 :(得分:1)

  1. 通过添加temp swift文件,在Objective-C目标中创建Objective-C Bridging Header文件。 Xcode将提示您添加Objective-C桥接器头文件。桥接头的名称是
  2.   

    [YourTargetName] -Bridging-Header.h

    enter image description here

    1. 在桥接标题中添加常量文件:

      CreatedWW 201715 201713 201713 . . 201646

    2. 转到构建Objective-C目标的设置。搜索“桥接”并从SWIFT_OBJC_BRIDGING_HEADER复制值

    3. enter image description here

      1. 转到构建Swift Test Target的设置。再次搜索“桥接”并将复制的值粘贴到Objective-C Bridging Header
      2. enter image description here

        1. 您现在可以直接在Swift Test Target中使用常量。

          #import "ConstantsHeader.h"