在框架头文件中找不到 swift 文件

Posted

技术标签:

【中文标题】在框架头文件中找不到 swift 文件【英文标题】:Can't find the swift file in framework header 【发布时间】:2014-12-26 10:15:02 【问题描述】:

我正在尝试创建一个简单的框架来使用 swift 进行测试。

我在objective-c 中用“创建框架”before 发布了这个问题。已经解决了。

但我正在尝试使用 swift 创建框架。

我遇到了问题。我无法在头文件中导入 MyUtility 文件。

如下:

有人知道如何在我的自定义框架中导入文件吗?

非常感谢。

==============编辑===========

为@Jerome L

【问题讨论】:

查看这个答案:***.com/questions/25823542/… 【参考方案1】:

为了在 Objective C 中导入 Swift,你需要使用如下语法:

#import <ProductName/ProductModuleName-Swift.h> 

所以我猜在你的情况下 ti 会是这样的:

#import <MyFramewordSwift/MyUtility-Swift.h> 

您可以找到更多详情here

【讨论】:

谢谢@Jerome L,但我改为#import ,它是找不到显示文件。@@ 根据苹果文档,您应该首先:“在打包的构建设置下,确保该框架目标的定义模块设置设置为是。”。抱歉,我现在没有 xcode 来测试。您仍然可以点击我输入答案的链接。它将详细解释如何进行导入。谢谢 我已经将定义模块设置为是,我已经在我的文章编辑部分发布了构建设置,您可以参考照片。我不知道我的项目或代码中的问题在哪里。非常感谢。 这是不同的情况,您所说的是将swift文件导入objective-c文件,这依赖于获取swift文件所在的模块并将其导入.m文件。这里的问题是如何将 swift 文件导入到框架头​​文件中 导入格式是正确答案。我希望我能给你一百万票。【参考方案2】:

我遇到了同样的问题。我有一个所有 swift 项目,并且正在制作一个纯 swift 框架。为了在同一个项目文件中获取目标以查看我框架中的类,我需要显式添加修饰符 public 在我的类声明前面和我想要访问的任何方法前面。这是其中一个类的示例。

private let _sharedInstance = SomeManager()

public class SomeManager: NSObject 
    
    //MARK: - Singleton instance
    
    public class var sharedManager : SomeManager 
        return _sharedInstance
    

     public func outwardFacingMethod()-> Void 
        internalMethod()
    
    
    private func internalMethod()-> Void 

    
   

link 中的文档在此处说明,但有点隐藏。如果您向下滚动到名为从同一框架目标中导入代码的部分,它会显示

因为为框架目标生成的标头是 框架的公共接口,只有标有公共的声明 修饰符出现在为框架目标生成的标头中。

【讨论】:

以上是关于在框架头文件中找不到 swift 文件的主要内容,如果未能解决你的问题,请参考以下文章

在 ReskIt 中找不到 xcodebuild 头文件

CMake GoogleTests 在我的测试文件中找不到导入的头文件

在带有框架的 XCode 5 中找不到文件

Windows程序移植到linux下 出现很多头文件里面定义的变量在linux中找不到想对应的头文件?求救~~~

swift头文件找不到'CNContactPickerDelegate'的协议声明

在 Xcode 项目中找不到 Firebase 文件