当前位置: 首页 > 面试题库 >

如何添加-Swift.h标头中使用的正向类引用?

单于越
2023-03-14
问题内容

我正在将Swift代码集成到一个大型的Objective-C项目中,但是当我的Swift代码引用Objective-C类时,我遇到了问题。例如,假设我有:

  1. 一个叫做Objective-C的类 MyTableViewController
  2. 一个叫做Objective-C的类 DeletionWorkflow

声明了一个Swift类,如下所示:

class DeletionVC: MyTableViewController {
  let deleteWorkflow: DeletionWorkflow

  ...
}

如果现在尝试通过导入ProjectName-Swift.hObjective-
C代码来使用此类,则对于MyTableViewController和都会出现未定义的符号错误DeletionWorkflow

我可以通过导入DeletionWorkflow.h以及MyTableViewController.h在导入之前解决该单个源文件中的问题,ProjectName- Swift.h但这并不能扩展到我希望我的Swift和Objective-C经常交互的大型项目中。

ProjectName-Swift.h当我尝试在我的应用程序中使用Objective-
C代码中的Swift类时,是否有办法添加前向类引用,以免发生这些错误?


问题答案:

这有点愚蠢,但听起来至少是目前苹果打算的“解决方法”。从互操作性指南中:

如果您在Swift代码中使用自己的Objective-
C类型,请确保在将Swift生成的标头导入.m您要从中访问Swift代码的Objective-C 文件之前,先导入这些类型的Objective-
C标头。

在这个devforums主题中,有人提到他们已经在Radar中提交了一个错误。您可能也应该这样做。



 类似资料:
  • 我试图使用HttpClient将“Accept Encoding”参数添加到我的HTTP头中,如“gzip,deflate”。代码如下所示。但是,我在响应中遇到以下错误,无法添加header参数。响应不包含添加的标题字段 错误:内部服务器错误

  • 我试图使用为请求添加头,但方法似乎不起作用。服务器端没有收到任何带有my标头的请求。

  • 问题内容: Retrofit 2的文档说: 可以使用OkHttp拦截器指定需要添加到每个请求的标头。 使用以前的版本以下是相关的质量检查)可以轻松完成此操作。 但是,使用改型2,我找不到类似的东西或方法,其可应用于对象。 此外,它似乎没有在OkHttp了。Retrofit的文档向我们介绍了Interceptor,我不太了解如何将其用于此目的。 我怎样才能做到这一点? 问题答案: OkHttpCli

  • 我有一个CSV文件,有五列和数百行。我想给每一列添加一个标题。例如 我已经尝试了下面的代码,它确实成功地添加了标题,但是,它也将所有列合并为一个。这不是我想要的 此代码将导致下表

  • 问题内容: 我有一个来自oracle的NO.net Web服务,要访问,我需要添加soap标头。如何在Java中添加soap标头? 这有必要吗? 我的肥皂标头是这样的: 问题答案: 我做到了,只需按照本教程进行即可。很有帮助 是来自javadb的副本(因为已关闭) http://informatictips.blogspot.pt/2013/09/using-message-handler-to-

  • 问题内容: 在CSS中,将鼠标悬停在元素上时,可以使用:hover伪类为其指定视图: 如何使用jquery添加或“打开”此伪类?通常在jQuery中,如果您想添加一个类,可以这样做: 我已经尝试过“ hover”,但这实际上是在元素中添加了一个名为“ hover”的类。 如果有人知道写什么,请告诉我!谢谢! 问题答案: 您不能强迫某个伪类使用jQuery来应用。伪类(尤其是动态伪类)不是这样工作的