我正在尝试导入myFramework一个项目。我myFramework在“构建阶段”->“使用库链接二进制文件”中添加了内容。
myFramework
Objective-C的作品:
#import <UIKit/UIKit.h> #import <myFramework/myFramework.h>
但是在Swift中,我得到一个No such module myFramework错误:
No such module myFramework
import UIKit import myFramework
根据Swift文档:
导入外部框架 您可以导入具有纯Objective- C代码库,纯Swift代码库或混合语言代码库的外部框架。无论框架是用单一语言编写还是包含两种语言的文件,导入外部框架的过程都是相同的。导入外部框架时,请确保将要导入的框架的“定义模块”构建设置设置为“是”。 您可以使用以下语法将框架导入不同目标中的任何Swift文件中: 迅速 import FrameworkName 您可以使用以下语法将框架导入不同目标中的任何Objective-C .m文件: 目标C @import FrameworkName;
导入外部框架
您可以导入具有纯Objective- C代码库,纯Swift代码库或混合语言代码库的外部框架。无论框架是用单一语言编写还是包含两种语言的文件,导入外部框架的过程都是相同的。导入外部框架时,请确保将要导入的框架的“定义模块”构建设置设置为“是”。
您可以使用以下语法将框架导入不同目标中的任何Swift文件中:
迅速
import FrameworkName
您可以使用以下语法将框架导入不同目标中的任何Objective-C .m文件:
目标C
@import FrameworkName;
我myFramework使用Xcode 5 创建。Xcode5没有“定义模块”构建设置。
问题出在哪里?
如果我正确地理解了您的意见,那么您的框架没有单独的构建目标(您已经使用XCode 5对其进行了构建),并且将该框架包含在项目的构建目标中。
您所指的文档部分是关于 不同 目标中的框架的。由于您的框架位于项目的目标中,因此本文档的此部分不适用于此处。
在您的情况下,您无法在Swift文件中导入框架。这就是为什么您会收到错误消息 “ No such module myFramework”的原因 。myFramework不是模块,它是项目模块的一部分(默认情况下由产品名称确定)。因此,您框架中的类应可访问。
但是,您的框架是用Objective- C编写的。所以,你必须做的是导入斯威夫特面临班在桥接头所描述这里。
请注意,这与模块的Swift导入无关。桥接头文件中的import指令仅通知编译器将Objective- C头文件“转换”为Swift语法,并使公共头对Swift可见。
那你现在应该怎么办?
首先导入您对bridged-header感兴趣的头文件。您只需要导入将在Swift中与之交互的标头。
在此阶段尝试编译您的项目。如果XCode找不到框架的头文件,则您的问题可能与Swift或XCode 6不相关,而通常是包含框架的问题。
之后,尝试实例化您在桥接头(也许在AppDelegate.swift中)中导入的类。XCode自动完成功能应为您提供类型名称。
希望这可以帮助。