【问题标题】:Objective-C class can't import swift pod defined at top levelObjective-C 类无法导入顶层定义的 swift pod
【发布时间】:2016-01-29 00:12:12
【问题描述】:

这是我的 Podfile:

platform :ios, '9.0'
use_frameworks!

target :Test_Swift_Import do
  pod 'BFKit-Swift', '1.5.1' //Just a swift pod to provide some methods to test
  pod 'SwiftySwift', '1.0.1' //and another
end

在我的 AppDelegate 类中,我尝试使用 BFKit 中的一个简单方法

BOOL isEmail = [@"not an email" isEmail]; 

我的 AppDelegate 是一个 Objective-c 类,而不是 Swift

为了完成这项工作,我尝试导入 BFKit Swift 模块

首先我尝试了众所周知的方法:

//Basic <Product_Name-Swift.h>
#import <Test_Swift_Import-Swift.h>

但是this SO postthis one too 都说要使用&lt;ProjectName/ModuleName-Swift.h&gt;。因为代码在一个模块中,所以这对我来说很有意义。

所以我试试#import &lt;Test_Swift_Import/BFKit-Swift.h&gt;

没有交易...

我将我的项目重命名为TestSwiftImport,以防下划线出现问题

没有交易...

我尝试直接导入模块

&lt;BFKit/BFKit.h&gt;

唉...

相关的 Xcode 构建设置

defines modules : Yes
Product Module name: TestSwiftImport 
Enable Modules: Yes
Link Frameworks Automatically: Yes
Objective-C Generated Interface Header Name: TestSwiftImport-Swift.h
Objective-C Bridging Header: TestSwiftImport/TestSwiftImport-Bridging-Header.h

我尝试过的激烈的事情

我已经完成了清理项目和构建文件夹、擦除派生数据、重置模拟器、退出模拟器、退出 Xcode 和重新启动机器的各种方式,但都无济于事。可悲的是,这些甚至是我想做的事情,而且它们有时会起作用……但在这种情况下不是。

Github Demo 项目显示问题

...is here

有什么想法吗?如果您打开项目,您可以看到更多失败的尝试。这不可能这么难......

【问题讨论】:

  • 任何 cocoa pod 导入的产品模块名称都应该是它自己,您是否尝试过单独使用 ?并且只在 .m 文件中?
  • 这适用于引号! `#import "BFKit-Swift.h" 但不是括号。 AppCode 不喜欢它,但 Xcode 喜欢。谢谢!
  • 这可能是对你更有用的帖子stackoverflow.com/questions/26328034/… 很高兴看到你成功了

标签: ios objective-c xcode swift cocoapods


【解决方案1】:

我知道这是 CocoaPods 的问题。

现在,如果我尝试将文件直接拖动到 xcode,它将正常工作。如果你真的需要它。您可以将所有文件拖到项目中。现在不使用可可豆荚。

你可以参考这个问题:Question

希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 2018-07-31
    • 2021-03-12
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多