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

objective-c - 将 Swift 框架集成到 Objective C 项目的步骤?

我有一个 Objective C 项目,我需要一个可滚动的选项卡。所以我遇到了下面的框架scrollableTab

它是一个快速的框架,我使用可可豆荚添加了它。

我可以添加@import SlidingContainerViewController;但我无法访问某些属性,例如

这些属性位于另一个 swift 文件 SlidingContainerSliderView.swift 中。

请提出任何其他解决方案。

我也对PageMenu有问题,它是一个 Swift 框架。我将它添加到我的目标 C 项目中。

@import 页面菜单;@property (nonatomic) CAPSPageMenu *pagemenu;

正常工作,但无法加载任何内容,以下是抛出错误:使用未声明的标识符 'CAPSPageMenuOptionMenuItemSeparatorWidth'、'CAPSPageMenuOptionUseMenuLikeSegmentedControl'、'CAPSPageMenuOptionMenuItemSeparatorPercentageHeight'

这是 CAPSPageMenu+Options.swift 文件中的公共枚举 CAPSPageMenuOption { case selectionIndicatorHeight(CGFloat) case menuItemSeparatorWidth(CGFloat) }

0 投票
1 回答
3642 浏览

swift3 - CocoaPod 在框架模块内包含非模块化头文件

我正在用 Swift 制作一个开源库,它使用第三方库(MailCore),它本身就在 Obj-C 中,所以我在我的库中添加了一个桥接头。

当我在示例项目中运行时,该库本身运行良好,但是当我尝试在 Swift 项目中将其用作 CocoaPod 时,编译器会显示以下错误:

Include of non-modular header inside framework module 'MyLib.MyLib_Bridging_Header': 'path/to/my/otherProject/Pods/Headers/Public/mailcore2-ios/MailCore/MailCore.h'

PS - 我在使用可可豆荚的 Swift 项目中使用我的库use_frameworks!

你能帮我解决这个问题吗?

编辑 :

我无意将其作为框架,这个问题是关于框架的。

0 投票
0 回答
658 浏览

ios11 - Xcode 9 中的 Swift 集成问题?

我正在开发一个用 Swift 编写的应用程序。我添加了 Objective-C 类。我已经完成了这里描述的所有事情,现在我可以在 Swift 文件中使用我所有的 Objective-C 类,但不能在 Objective-C 类中访问 Swift 文件。即使我无法在我的 Objective-C 类中导入文件“MyProjectName-Swift.h”。

我还完成了以下设置:

1:定义模块:

2:产品模块名称:(确保项目模块名称不包含任何特殊字符)。

3:安装 Objective-C 兼容性标头:

4:Objective-C生成的接口头文件: myProjectName-Swift.h

5:Objective-C 桥接头: $(SRCROOT)/myProject-Bridging-Header.h

但没有运气。有人可以告诉我我做错了什么或缺少什么。您的帮助和经验将不胜感激。

0 投票
0 回答
41 浏览

objective-c - 从 Swift 代码实例化目标 C 控制器时出现这个奇怪的错误

我在现有的 swift 基础项目中添加了一组 Objective C 类和一个故事板。我还添加了桥接头文件,但是当我从 swift 代码中实例化一个目标 c 类时,我遇到了这个错误。我已经看到了很多答案和问题,但没有一个可以解决我的问题。

我还根据此链接检查了 .m 文件,并且一切都在那里。我在界面下添加了@implementation。

体系结构 x86_64 的未定义符号:“_OBJC_CLASS_$_ContactViewController”,引用自:ContactVC.o ld 中的 objc-class-ref:未找到体系结构 x86_64 的符号:错误:链接器命令失败,退出代码为 1(使用 -v查看调用)

这是我的快速代码。

0 投票
0 回答
306 浏览

objective-c - 由于框架中的 Obj-C 桥接,Swift 性能降低了 10 倍?

我正在开发一个性能密集型的 Swift 应用程序,大部分快速代码都驻留在框架内。我的昂贵函数之一涉及迭代超过 200 万个元素的结构数组。不幸的是,Obj-C 桥使 Swift Array 的性能比它应该的慢了一个数量级。我大约 90% 的周期都浪费在_ArrayBuffer._checkInoutAndNativeTypeCheckedBounds与桥接相关的保留和发布上。如果我放弃框架并简单地将那些相同的文件包含在我的目标中,性能会提高 10 倍。但是,如果可能的话,我更愿意保留框架。

有没有办法告诉我的框架不要做任何 Obj-C 桥接,即直接使用 Swift?

0 投票
1 回答
3555 浏览

ios - 没有这样的模块 Common Crypto

我正在使用 swift 3.2。我制作了一个桥接头文件,其中包含以下内容:

在我的项目构建设置中,我指向我的桥接头文件,但'No such module CommonCrypto'在我使用 import CommonCrypto 的类中仍然出现错误

更新:头文件:

0 投票
2 回答
108 浏览

objective-c - Swift 中的 Objective-C 方法参数

调用在 Objective-C 中声明并桥接到 Swift 的方法时遇到一些问题。我在有问题的方法旁边创建了一个 void 方法并且能够调用它,所以我很确定它与桥接处理方法参数的方式有关。

然后在 Swift 文件中,我像这样调用每个文件:

Swift 抱怨“ 'ModelUtil' 类型的值没有成员 'fetchProductHistoryforProduct'

你能告诉我我做错了什么吗?

0 投票
2 回答
342 浏览

objective-c - 来自导入的 Objc 头文件中#define 的未解析标识符

我有一个 Obj-c 类“constants.h”,如下所示:

在我的 myProduct-Bridging-Header.h 中,我有:

但是,当我在 Swift 类中调用 kLookAhead 时,例如像这样

我收到错误消息“使用未解析的标识符‘kLookAhead’”

我在 myProduct-Bridging-Header.h 中导入的所有其他类都运行良好,并且 kLookAhead 在我的 objc 类中成功使用。

有什么我应该知道的吗?

0 投票
1 回答
65 浏览

swift - 无法将 swift 类的可选委托访问到目标 c 项目中

我在我的目标 c 项目中使用 swift pod 文件,当我尝试设置 swift 类的委托时,我看不到数据源和委托的位置。我无法访问它。谁能告诉我无法访问它的原因。

swift 还有哪些我们无法访问的东西?

0 投票
1 回答
991 浏览

ios - 在 Objective-C 项目中找不到 Swift 类

我正在开发一个使用 Objective-C 开发的 iOS 项目。我需要在其中集成一些 Swift 文件。所以,做了以下事情:

  1. 添加了一个名为“temp”的新 Swift 文件,以便MyProject-Bridging-Header.h由我的 Xcode IDE(版本 9.1)添加。
  2. 将我要使用的 Swift 文件添加到项目中。
  3. 将目标设置更改Defines Module为“是”。
  4. 同样,“产品模块名称”设置为“MyProject”。
  5. 我可以看到MyProject-swift.h设置“Objective-C Generated Interface Header Name”的文件名。
  6. myProject-swift.h在我的一个 Objective-C .m 文件中添加了 import 语句,并且能够成功构建项目。
  7. myProject-swift.h我签入了已创建的 Finder 。
  8. 确保 Swift 类声明中的 @obj 前缀。

尽管如此,当我尝试使用任何 Swift 类时,都会出现编译时错误“未声明标识符的用户”。

问题的原因可能是什么?我错过了什么吗?