当前位置: 首页 > 知识库问答 >
问题:

在Objective-C类中导入Swift协议

阎鸿煊
2023-03-14

我尝试将名为AnalyticProtocol的Swift协议导入到名为AnalyticFactory的Objective-C类中。

protocol AnalyticProtocol
{

}

我从一个现有的Objective-C项目开始(我没有用xCode创建一个新的Swift项目,也没有发现如何在Xcode6中将我的Objective-C项目配置为一个Swift项目)。

在Apple文档中,他们说我必须在我的.m文件中包含名为MyProjectName-swift.h.h文件。但我不需要将其包含在.m文件中,而是包含在.h中。这会有问题吗?

当我尝试编译时,出现以下错误::0:error:xxxAnalyticFactory.h:39:找不到“AnalyticProtocol”的协议声明

和被定罪的法典:

@interface AnalyticFactory : NSObject
{
    Class<AnalyticProtocol> _analyticProtocolClass; // The type of the analytic class currently used.
}

共有1个答案

白光耀
2023-03-14

您需要将@objc属性添加到您的Swift协议中,如下所示:

@objc protocol AnalyticProtocol {

}
 类似资料:
  • 问题内容: 我正在将我的项目从Objective-c转换为Swift,并且正在使用一个Swift类,我正在尝试在Objective- c类中进行访问。我的问题是,在Objective-C类中不可访问。这是我的速成班: 当我查看文件时,看不到: 当我尝试在我的Objective-c类中使用时,出现编译器错误。 有人知道这个问题吗?如何在Objective-c中访问Swift协议? 问题答案: 您需要

  • 本文向大家介绍在Swift中使用Objective-C编写类、继承Objective-C类,包括了在Swift中使用Objective-C编写类、继承Objective-C类的使用技巧和注意事项,需要的朋友参考一下 互用性(互操作性)使开发者可以定义融合了 Objective-C 语言特性的Swift类。编写 Swift 类时,不仅可以继承 Objective-C 语言编写的父类,采用 Objec

  • 问题内容: 我将swift框架导入到Objective-C项目中,如下所示: 问题在于我正在导入框架的类只能识别某些类。 被认可的课程: 该类不是: 它们都是公开的,那么为什么第一个在工作空间中被识别,而另一个却没有? 我也在头文件MyFramework-Swift.h中看到一个类 出现而其他不出现 这是为什么? 另外要指出的是,当我将swift框架导入swift项目时,该相同的程序也可以工作 问

  • 问题内容: 我已经在Swift中编写了一个库,但无法将其导入到用Objective-C编写的当前项目中。 有什么方法可以导入吗? 问题答案: 您需要导入。请注意,这是目标名称-其他答案会导致使用类名称的错误。 这个单个文件是一个自动生成的标头,它为项目中所有用注释或继承的Swift类定义了Objective-C接口。 注意事项: 如果您的目标名称包含空格,请用下划线替换(例如,成为) 如果目标是框

  • 假设我在Swift中定义了一个泛型类,类似于以下内容: (我知道数组有一个稍微好一点的实现,这只是一个例子。) 在Swift中,我现在可以非常容易地使用这个类: 在Xcode 7中,我们现在在Objective-C中拥有泛型,所以我假设我可以在Objective-C中使用这个类: 然而,MyArray从未添加到我的<code>项目Swift中。h文件。即使我将其更改为从NSObject继承,它仍然

  • Objective-C允许定义协议,声明预期用于特定情况的方法。 协议在符合协议的类中实现。 一个简单的例子是网络处理类,它将具有一个协议,其中包含委托方法等方法,当网络URL提取操作结束,就会调用类。 协议的语法如下所示 - 关键字下的方法必须在符合协议的类中实现,并且关键字下的方法是可选的。 以下是符合协议的类的语法 - 的任何实例不仅会响应接口中特定声明的方法,而且还会为中的所需方法提供实现