问题标签 [objc-bridging-header]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
372 浏览

swift - 无效的预处理指令 swift

我在导入 payTab(支付网关!)时收到此错误(无效的预处理指令)

0 投票
1 回答
263 浏览

objective-c - 强制返回 `id` 和 inout NSError 的 Objective-C 方法桥接到可选返回

考虑这个 Objective-C 类:

TestAPI用作抽象基类,并希望在 Swift 中继承它。

Swift 将此代码桥接成如下所示(即对应菜单 -> Swift 4.2 界面):

问题是它aNullableMethodWithError()可以nil作为有效值返回。

我如何说服 SwiftaNullableMethodWithError()返回Any?而不是返回Any

还是有更好的方法来编写 Objective-C 方法签名?

0 投票
2 回答
300 浏览

ios - “id”类型如何在不强制转换的情况下理解方法的接收者?

将 master 合并到我的工作分支后,我在线上遇到了编译器错误,该错误没有被更改。错误看起来像

发现多个名为“count”的方法结果不匹配。

起初看起来很清楚,因为编译器不知道“test”变量是哪种具体类型。但我不明白为什么它以前有效。

  1. 如果我创建一个新文件,这条线可以工作,假设这是一个 NSArray 的方法。为什么编译器在这种情况下不显示错误?

  2. 在显示错误消息时,显示了几种可能的计数方法接收器。(NSArray,NSDictionary,NSSet)它是否搜索所有可以接收该消息的类并在有多个时显示错误?

  3. 我注意到导入“-Swift.h”文件时发生错误。怎么看?

0 投票
1 回答
429 浏览

ios - 框架在自动生成的 swift 文件中不可见

我想在 Objective-C 项目中导入一些 swift 类。我添加了所有类,创建了桥接头,在我的类中导入了 MyTarget-swift.h 文件,一切似乎都正常。

在构建项目时,我在生成的 swift.h 文件中发现了一个非常奇怪的错误:

在此处输入图像描述

StoreKit 框架已添加到项目中。我不知道发生了什么。有人有什么想法吗?

0 投票
1 回答
739 浏览

objective-c - Objc 类无法识别 Swift 类

按照以下步骤,我无法在我的目标 c 项目中导入 swift 类:

环境:

Xcode: 10.0

斯威夫特:4.2

1 - Ctrl+N 生成一个新的 swift 文件

2 - 从 xcode 问题中选择“创建桥接头”

3 - 在 Target -> build settings,搜索“Packaging”并打开“Defines Module”

4 - 在我的 objc .m 文件中导入 #import "MyProjectModuleName-Swift.h"

5 - 尝试调用我的 swift 方法,但似乎没有任何效果,我无法调用它,因为我的 .m 类无法识别我的 .swift 文件。

怎么了?

0 投票
2 回答
1319 浏览

ios - 从 swift 访问前向声明的枚举的属性

鉴于有一个用 Swift 编写的 ObjC 兼容枚举:

和一个 ObjC 类,其类型的属性MessageType必须提前声明:

为了Message在 Swift 代码库的其余部分中使用 ,Message.h被添加到桥接头中:

现在,假设有一个 Swift 类试图读取该messageType属性:

编译将失败并出现以下错误:

我的问题是:有没有办法向前声明一个 Swift 枚举以便MessageTypeReader能够访问该属性?

注意:我知道将 Message 重写为 Swift 或将 App-Bridging-Header.h 导入 Message.h 的可能性,但这不是一个选项,我正在寻找一种适用于当前设置的解决方案。

0 投票
1 回答
47 浏览

ios - 从 pod 安装框架后,无法在 Swift 项目的类中导入,抛出错误 no such module swift import

Objective C Bridge Header - 头文件路径

0 投票
2 回答
5267 浏览

xcode - 未能发出预编译的标头

下午好

我正在尝试将谷歌热图实施到我的基于地图的项目中。在这个特定项目中,尝试构建时出现以下错误。

无法发出预编译的标头

并跟进说

.h 文件未找到

我不确定为什么会发生这种情况,因为我创建了一个全新的项目并进行了相同的实现并且效果很好。但是当我在现有项目上运行它时,我得到了这两个错误。

我一直在研究这个问题一段时间,但我无法弄清楚问题是什么。我将桥接头设置为 .h 文件。桥接头

我已经尝试了个人试图给出答案的大多数步骤,但由于某种原因,它不适用于我的项目。先感谢您。在阅读 google 安装指南时,它说我只需要添加一个桥接头文件,即您在下图中看到的代码。在研究它时,我发现我还需要添加一个 .m 文件,但是当我这样做时我仍然会遇到同样的错误。再次,在我的虚拟项目中,我没有 .m 文件,只有您在下面看到的所有内容,并且所有内容都可以编译。

0 投票
0 回答
35 浏览

ios - Swift 生成的桥接头中 AuthChallengeDisposition 枚举的语义问题

我正在向URLSessionDelegate我的一个 Swift 类(称为SearchViewController)添加协议一致性,并且我正在实现urlSession(_:task:didReceive:completionHandler:)。此方法的签名包括 type URLSession.AuthChallengeDisposition。当我构建项目时,似乎这种类型会导致自动生成的 Swift-Objective C 标头出现问题:

编译错误。

Swift 团队似乎不太可能搞砸桥接行为,因为我无法通过搜索找到任何东西(其他人可能正在实现和桥接这个委托方法),但我不知道还有什么可能上。我对这些桥接头几乎一无所知,所以我在这里很迷茫。

0 投票
1 回答
808 浏览

ios - 项目在 Swift 中时无法从 Objective-C 访问 swift 类

我有一个 swift 项目,我的初始项目UIViewController是一个 swift 类。

从最初的 开始,我在 my 中ViewController添加了一个新的并为其设置了一个Objective-c类 ( )。ViewcontrollerstoryboardFirstViewController.h

在我的项目中,我有另一个swift 类( DataManager.Swift),它是NSObject.

现在我想DataManager.swift在我的Objective-C 类( FirstViewController.m) 中创建它的一个实例。但不幸的是,我无法创建这个实例,给了我一个错误,比如 - Receiver 'DataManager' for class message is a forward declaration

我现在可以做些什么来解决这个问题?项目快速运行时,是否可以从 Objectibe-C 类访问swift 类?

我的FirstViewController.m

我的DataManager.swift类,

我的BridgingHeaderFile