ios - 在 Objective-C Project 的 Swift 文件中导入 Objective-C 类

标签 ios objective-c swift xcode

我目前正在使用 Objective-C 项目,并且在这样创建的桥接 header 中使用了一些 swift 文件,例如 APPNAME-Swift.h。并且我能够导入 Objective-C 类。但我的问题是我需要在 swift 文件中导入 objective-c 类。

这里是例子:

Objective-C project>drag and drop swift files ClassA.swift, ClassB.swift into project and created bridge. Now in objective-C class i'm able to use swift classes in objective-c classes like below Appdelegate.h i imported #import "<#YourProjectName#>-Swift.h"

now i need to import Appdelegate.h in ClassB.swift.

请帮帮我

最佳答案

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

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

Setup of bridging headers

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

Setup of the Objective C interface file

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

#import "MyObjectiveCClass.h"

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

为 Xcode 9.2 提供的所有设置。

关于ios - 在 Objective-C Project 的 Swift 文件中导入 Objective-C 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48439939/

相关文章:

ios - 如何获取 UITableView 中每个动态创建的单元格的文本字段值

objective-c - 向 CGPoint 类型参数发送 nil

ios - Swift 中的三角函数

ios - 无法使用 'stringFromDate' 类型的参数列表调用 '(NSData)'

ios - 如何防止在较旧的 iOS 设备上渲染使用 Zwoptex 生成的 sprite-sheet 时出现像素渗色?

ios - 使用 AFNetworking 2.5 将 JSON 序列化为 NSArray

ios - 内部带有导航 Controller 的 PageViewController

ios - Apple map 上的语音转弯导航

iphone - iOS 上除了 Restkit 之外的简单 Restful 框架/客户端?

ios - 如何在 swift 2 的 UITableViewController 中自动调整表中的行高?