问题标签 [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 回答
145 浏览

swift - 如何在我的 swift 项目中将 quickblox 框架与目标 c 头文件集成?

我正在使用Swift 3.0将用于聊天功能的Quickblox Framework集成到我自己的Xcode 8.2应用程序中。

但是在桥接头文件中导入Quickblox框架的头文件时,它给出了错误

有没有人在Swift 3.0中完成过这种Quickblox 框架的集成?

0 投票
2 回答
166 浏览

objective-c - 无法在 Swift 项目中添加 Objective C 桥接头

我正在使用 Xcode 8.2.1 和 Swift 3。我正在尝试添加 Objective C 桥接头。虽然我已经创建了 .h 文件,但构建设置中没有添加桥接头的行 奇怪的问题

我被困了几个小时。任何正确方向的帮助将不胜感激。

0 投票
1 回答
842 浏览

objective-c - Swift 3.1 中的 `@discardableResult 覆盖 init()` 抛出 `warn_unused_result` Objective-C 警告

我有一个桥接到 Objective-C 的 Swift 类。即使使用@discardableResult,它也会在 Objective-C 类的构建中抛出此警告:

忽略使用“warn_unused_result”属性声明的函数的返回值

有没有办法让这个静音?这是在带有 Swift 3.1的 Xcode 8.3中。

0 投票
1 回答
1486 浏览

objective-c - 在 Swift 中使用 Objective-C 枚举

我在 Xcode 8.2(构建目标 8.0)的 swift 2.3 代码中调用了一个 Objective-C 方法。它接受一个 NS_ENUM 作为参数:

包含此枚举和方法的 .h 文件位于我的 bridging-header.h 文件中。这是 objc 方法的签名:

然后我像这样从 Swift 2.3 调用它:

当我编译它以进行调试并运行它时,这工作正常。但是,当我尝试将其存档并编译发布时,我收到以下消息:

我不知道为什么这只会在我归档构建或如何修复它时发生。


编辑:根据我在其他地方看到的类似问题的答案,我在我的方案中将存档构建配置从 Release 更改为 Debug,现在它存档了。然而,这似乎不是一件好事。通过这样做,存档会包含我的调试符号吗?

0 投票
1 回答
362 浏览

objective-c - 从 Objective-C 类中访问对象的 Swift 函数

我正在尝试在我的 Objective-C 项目中实现一些 Swift 框架。我已经设置了所有的 Bridge-Headers,并且还在 swift 类中的函数和类之前编写了 @objc。因此需要执行以下操作,但示例代码在 Swift 中给出:

我必须在对象 barView 的 Obj-c 类中执行此代码。我试图这样做,但它不起作用:

我应该怎么办?

编辑:

我有一个 IBOutlet 连接:

因此,有一个名为 barView 的对象。我也有一些 Swift 类的代码:

我需要在 Objective-C 类中执行该代码(在 Swift 中给出):

如何重写它以使其在 Objective-C 中工作?

0 投票
1 回答
94 浏览

ios - 在swift中导入swift链接的objc类

我目前工作的项目将 Objective-C 和 Swift 都与桥接头链接在一起,一切正常。但在一种情况下,Obj-c 中的这个特定 viewController.h 已经快速导入。当我尝试在另一个 Swift 控制器中访问此 viewController.h 时,它显示“<#project-name#>-swift.h”文件未找到

指导我如何快速访问这个 objC 文件:(

编辑:详细!!

我有一个 viewController.h 文件,我通过导入 '<#project-name#>-swift.h' 实现了 swift 模型

但是当我尝试从 SecondViewController.swift 访问这个 viewController.h 时,我必须将它添加#import "viewController.h"到我的项目的桥接头中。如果我这样做,我会收到此错误 '<#project-name#>-swift.h' file not found

0 投票
1 回答
349 浏览

objective-c - 在 Objc 中定义的枚举 > 在 Swift 中声明 > 在 Objc 中使用

我有一个情况。如果有人对此有解决方案,我将不胜感激

  • 我有一个 objCenumAbc
  • 我在一个 swift 类中声明了这一点,比如说MySwiftClass.swiftvar abc : Abc!
  • mySwiftClass在另一个 ObjC 类(myObjC.m 文件)中创建了 MySwiftClass ( )的实例
  • 在 myObjC.m 中,我试图将枚举 Abc 访问为mySwiftClass.abc.

这会引发错误 - “在 MySwiftClass * 类型的对象上找不到属性 'abc'”。基本上枚举不会作为属性添加到“ProjectName-Swift.h”文件中。

我认为正在发生的是,当我在 Swift 类中声明 ObjC 枚举时,它会被转换为 swift 枚举,因此我无法在 ObjC 文件中访问它。

注意:将 Swift 类标记为 @objc 不起作用。

0 投票
1 回答
347 浏览

objective-c - 无法将符合协议的 Objective-C 类分配给具有 Swift 协议的属性

我试图让一个 Objective-C 类采用一个用 Swift 文件编写的协议。在某种程度上,我让 Swift 与 Objective-C 互操作。(我可以从 Swift 构建我的 Objective-C 类)。

我有:

然后,我的 Objective-C 文件:

并暗示:

但是当我给 Swift(主要在应用程序委托中这样做)一个委托属性并尝试将 Objective-C 对象分配给它时:

它失败了:

无法将类型“ObjClass1”的值分配给类型“FooProtocol?”。

我试过用它来强制它,as! FooProtocol但这会导致 SIGABRT。

这里有什么问题?

0 投票
1 回答
3491 浏览

ios - Swift 3 导入 CommonCrypto

如何将 Obj-C CommonCrypto 库导入现有的 Swift Xcode 项目(Swift 3、Xcode 8.3.3)?

我试图创建自己的 Objective-C 桥接文件,但它不起作用。

0 投票
3 回答
9137 浏览

swift - 仅当 iOS11 可用时才包含类的扩展

我正在尝试扩展一个用 Obj-C 编写的类,并包含一个用 Swift 编写的扩展,使其符合UIDropInteractionDelegate,如下所示:

我的问题是该Project_Name-Swift.h文件包含以下无法编译的代码:

编译器抱怨该文件中的接口是部分的。

'UIDropInteractionDelegate' 是部分的:在 iOS 11.0 中引入

我认为包含@available(iOS 11.0, *)会生成一个SWIFT_AVAILABILITY(ios,introduced=11.0)封装整个接口的,但我错了。

有没有办法来解决这个问题?

更新


我实现了一个玩具示例。

这是玩具 ViewController:

在此处输入图像描述

这是快速扩展:

在此处输入图像描述

这是生成的 dnd_toy-Swift.h 文件。

在此处输入图像描述

您说得对,这只是一个警告,但我的问题是我们必须将所有警告视为项目中的错误。

关于如何从这里摆脱这个警告的任何想法?