gpt4 book ai didi

objective-c - 如何在 pod 库中混合使用 Swift 和 Objective-C?

转载 作者:太空狗 更新时间:2023-10-30 03:43:47 25 4
gpt4 key购买 nike

我使用以下命令创建了一个新的 swift lib pod:pod lib create MixSwiftObjectiveC found from https://guides.cocoapods.org/making/using-pod-lib-create.html

在这个 pod 库中,我需要使用用 Objective-C 编写的代码。如果我有一个单独的“正常”项目,我将只在头文件…-Bridging-Header.h 中包含导入。pod 库是否有等效项? Swift 和 Objective-C 可以在 pod 库中混合使用吗?

作为示例,我创建了这个 github:https://github.com/crarau/MixSwiftObjectiveC为了运行该示例,您需要 XCode Version 7.0 beta 6 和 Swift 2.0

Compilation issue

感谢您的帮助!

最佳答案

注意:此答案已过时且不再相关。请看https://stackoverflow.com/a/61183908/3160507获取最新的答案。


我确认了一个可行的解决方案,下面是它的工作原理:

  1. 只能是 iOS 8+(当然...)

  2. 使用 Xcode 创建 Cocoa Touch Framework

  3. 开发框架,随意混合swift代码和objc代码。确保将所有需要公开的 swift 类标记为 public。您可能需要咨询 documentation

  4. 创建一个 podspec 文件,提供必要的信息(参见 here 了解 pod 的外观)。特别需要注意的一件事是,您需要在 podspec 文件的 source_files 中包含 Umbrella Header(在您的框架中用于将 objc 代码公开给 swift)。当您创建框架项目时,Xcode 会自动为您的框架创建一个伞头。如果您的框架名称是 NVMDummy,则 header 是 NVMDummy.h

  5. 推送 pod 并将 pod 作为框架集成到您的项目中。

  6. 测试您的 pod 库。我创建了一个演示应用程序,添加了我的 pod 库并在我的 ViewController.m 中,我执行了以下操作:

     @import MyPodLibMixingOjbcAndSwift;

    // in viewDidLoad
    // use objc code in MyLib -> OK...
    // use swift code in MyLib -> OK...

演示应用程序有效,所以我认为它有效。

这是演示: https://github.com/axl411/TestNVMDummy

关于objective-c - 如何在 pod 库中混合使用 Swift 和 Objective-C?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32459678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com