【问题标题】:Import Objective-C class in Swift file in Objective-C Project在 Objective-C 项目中的 Swift 文件中导入 Objective-C 类
【发布时间】:2018-07-04 12:41:37
【问题描述】:

我目前正在使用 Objective-C 项目,并且我在其中使用了一些 swift 文件,因此创建了像 APPNAME-Swift.h 这样的桥头文件。而且我可以在objective-C类中导入。但这里我的问题是我需要在 swift 文件中导入objective-c 类。

这是一个例子:

Objective-C 项目>拖放 swift 文件 ClassA.swift, ClassB.swift 进入项目并创建桥。现在在objective-C类 我可以在下面的objective-c类中使用swift类 Appdelegate.h 我导入了#import "-Swift.h"

现在我需要在 ClassB.swift 中导入 Appdelegate.h。

请帮帮我

【问题讨论】:

    标签: ios objective-c swift xcode


    【解决方案1】:

    你不需要在你的项目中创建文件“APPNAME-Swift.h”,它会在构建过程中自动生成,你不​​应该尝试修改这个文件。您可以为您的项目创建桥接头,但我想您没有问题。我只是建议您重命名您的桥接头,因为我猜生成的文件“APPNAME-Swift.h”与您的桥接头名称相同,这就是您遇到问题的原因。

    重命名桥接头后,更改构建设置。您需要在 Build Settings -> Objective-C Bridging Header 中更改一个字符串(有关更多信息,请参见附图):

    如果您想更改文件“APPNAME-Swift.h”的名称,您还需要修改您的构建设置。您可以在 Build Settings -> Objective C Generated Interface Header Name 中执行此操作(有关更多信息,请参见附图):

    在您的桥接头中添加以下行:

    #import "MyObjectiveCClass.h"
    

    之后,您将能够在您的 Swift 代码中使用类 MyObjectiveCClass (Objective-C)(如果文件“MyObjectiveCClass.h”包含一个名为“MyObjectiveCClass”的类)。

    为 Xcode 9.2 提供的所有设置。

    【讨论】:

    • 感谢您的回复,我同意您的看法。它生成的桥头文件,我可以在objective-C中使用swift类,但我也需要在swift文件中使用objective-c类
    • @BoosaRamesh 您的桥接头名称是什么?或者,也许您对每个目标使用不同的标头?
    • ProjectName/ProjectName-Bridging-Header.h,在objective-C项目中拖放swift类后自动生成。我可以在我的项目中使用所有 swift 类。但这里的问题是我需要在 swift 类中导入目标类,如应用程序委托。我无法导入
    • @BoosaRamesh 您能否将桥接头中的代码添加到此问题中?
    猜你喜欢
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    • 2015-10-27
    • 1970-01-01
    • 2018-09-17
    • 2017-03-28
    • 1970-01-01
    相关资源
    最近更新 更多