问题标签 [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 投票
1 回答
83 浏览

swift - 框架方法可访问性中的桥接头

我有一个用 Swift 编写的框架和一些 Objective-C 文件。

我只需要在我的框架的 Swift 类中使用 Objective-C 方法。当我将相应的导入添加到桥接头中时,它使方法在框架之外可用。

是否可以导入 Objective-C 代码但将可访问性指定为 internal 或 private ?

0 投票
4 回答
7455 浏览

ios - Facebook SDK Swift - 使用未声明的标识符

我得到Use of undeclared identifier了我使用的每个 Facebook 对象

遵循本教程: 教程:如何在 FACEBOOK SDK 4.1.X 中共享 SWIFT

但我有以下错误:

在此处输入图像描述

我通过 cocoapods 添加了 Facebook 框架:

并且安装成功

在此处输入图像描述

我添加了桥接头

桥接头连接:

在此处输入图像描述

我已经配置了我的 .plist

这是代码:

0 投票
1 回答
1925 浏览

ios - Objective-C 协议方法在 Swift 中不可见

我目前正在我的ObjC项目中处理一些 Swift 类。

我遇到的问题如下:

我在 ClassA.h 中声明了这个协议:

很标准的东西。

现在我的目标是拥有一个 swift 类,其属性是实现此协议的对象。所以很自然地,我将我的类添加到 swift 桥接头中:

并在 ClassB 下的 swift 文件中声明我的属性,该文件UIViewController实现了另一个协议

这里的问题是:我想在viewDidLoad. 它适用于所有这些方法,除了一种不会自动完成的方法,并且如果手动输入会出错:

我不知道发生了什么,它与可选或必需的协议方法无关,与我的委托属性是可选的(尝试展开)这一事实无关。

有没有人面临类似的问题?似乎是某种错误?

0 投票
0 回答
184 浏览

objective-c - 带有 Swift 的 Cocoapods Obj-C 框架不起作用

我使用 cocoapods 在我的 swift 项目中安装了一个 obj-c 框架。在我的桥接头文件中,我导入了可以正常工作的框架。

但是我似乎无法在我的项目中使用这些类

这给出了一个错误,我正在使用未解析的标识符。

在我的 podfile 中有 use_frameworks!,但我不能直接在 swift 类中导入这些类。在我的构建设置中,我也已经将配置设置为使用 pod-config 文件。

如果我将它手动添加到我的项目(不使用 cocoapods)并导入到我的桥接头中,该框架可以正常工作。

这个问题是 cocoapods 的问题还是我做错了什么?似乎无法找到一种方法来解决这个问题。任何帮助,将不胜感激。谢谢!

0 投票
1 回答
4247 浏览

ios - 在没有 use_frameworks 的情况下使用 cocoapods!在斯威夫特

根据教程,我们应该添加use_frameworks!PodfileSwift 项目中。.m但是如何在同一个项目中使用第三方代码呢?

一种可能的方法是,

  • 不要添加use_frameworks!Podfile
  • 导入标头...-Bridging-Header.h
  • 然后,我可以在 .swift 和 .m 文件中使用第三方代码

但是当我尝试导入标头时...-Bridging-Header.h,它只会抛出*.h file not found错误,如何解决这个问题?

0 投票
1 回答
1345 浏览

swift2 - 创建应用程序扩展时找不到桥接头

尝试为我的应用程序创建文档提供程序应用程序扩展时,当我在创建应用程序扩展后尝试运行项目时返回此错误(只是创建它而不添加任何其他内容):

错误:桥接头“/myPath/test-Bridging-Header.h”不存在

显然,应用程序扩展没有在正确的路径上搜索,桥接头位于包含所有类的文件夹中,并且应用程序扩展正在项目的根目录中寻找它。有什么修复吗?

0 投票
1 回答
221 浏览

ios - 基于swift的单视图iOS应用程序中的NXOAuth2Client:如何导入库

我想在我的单视图 iOS swift应用程序中使用NXOAuth2Client;因此,我使用 CocoaPods 将库添加到我的项目中。我打开工作区,项目成功构建。

我在objective-c中关注的教程,在某些时候,在AppDelegate.m它们中:

但是当我尝试做同样的事情时,AppDelegate.swift我总是得到No such module;例如,如果我尝试:

我得到:

没有这样的模块 NXOAuth2Client

(如果我尝试也一样import NXOAuth2:)

我在同一个项目中查看了Swift 和 Objective-C,但我没有足够的经验来弄清楚在我的情况下该怎么做。

这是我的工作区结构: 工作空间

需要我补充Bridging-Header.h吗?它是如何工作的,我把它放在哪里?

0 投票
1 回答
134 浏览

objective-c - 导入 Objective-C 文件会破坏 CocoaPod

我的设置:

1) 安装在 Swift 2.0 项目中的 Objective-C 类的 Cocoapod 工作

2) 如果我尝试导入另一个 Objective-C 类,添加桥接头似乎会破坏 Cocoapod 导入的类。

我有一个用 Objective-C 编写的 Cocoapod,我已成功导入到 Swift 2.0 项目中。那个 Cocoapod 一切正常。我不需要做任何事情来让它工作——它只是“工作”。

当我尝试在没有 Cocoapods 的情况下将另一个 Objective-C 类导入我的项目时,添加桥接头似乎破坏了我之前导入的 Cocoapod。在我创建桥接头的那一刻,我的项目不再看到原始 Cocoapod 的类。

我怀疑新的桥接头破坏了 Cocoapod 设置的东西,但我无法在我的项目中找到另一个桥接头。如果有人对在哪里寻找问题有建议,我将不胜感激。

更新

我尝试添加第二个非 Cocoapod Objective-C 类而不在提示符处添加桥接头,我得到了同样的错误。No such module 'CocoaPodClassThatWorkedBefore'

0 投票
1 回答
519 浏览

objective-c - 如何使用来自目标c的同名类而不是swift

不幸的是,我在 Objective C 中定义了一个类(Class.h,Class.m)和另一个在 Swift(Class.swift)中具有相同名称的类。

我有一个桥接头,我在其中导入类

现在,我想创建一个从 Objective C 返回类的方法。有没有办法指定我想使用 Objective C 类而不是 swift 类,或者我应该开始重命名我的类?

0 投票
1 回答
781 浏览

objective-c - 桥接头文件 Swift

我想为我的新 Swift 项目手动创建一个 Obj-C 桥接头文件,以便与 AudioKit 一起使用。我被困住了。一切似乎都是正确的(我什至检查了文件路径末尾的空格是否是问题而不是,我清除了项目)。作为证明,我附上一张截图:

在此处输入图像描述

有什么问题?