在名为“ MyModule ”的模块内,Xcode生成一个名为的标头,该标头MyModule-Swift.h将公共Swift类公开给Objective-C。导入此标头以使用Swift类:
//MySwiftClass.swiftin MyApp import Foundation // 该类必须是“ public”才能可见,除非该目标也具有桥接头public class MySwiftClass: NSObject { // ... }
//MyViewController.min MyApp #import "MyViewController.h"#import "MyApp-Swift.h" // 导入生成的接口#import <MyFramework/MyFramework-Swift.h> // 或将尖括号用于框架目标 @implementation MyViewController - (void)demo { [[MySwiftClass alloc] init]; // 使用Swift类 } @end
相关的构建设置:
Objective-C生成的接口头名称:控制生成的Obj-C头的名称。
安装Objective-C兼容性标头:-Swift.h标头是否应为公共标头(用于框架目标)。
使用@import MyFramework;导入整个模块,包括到Swift类的Obj-C接口(如果启用了上述构建设置)。
本文向大家介绍Swift调用Objective-C代码,包括了Swift调用Objective-C代码的使用技巧和注意事项,需要的朋友参考一下 最近iOS开发之新编程语言Swift在iOS开发圈内反响比较大,国内外都有很多教程或小示例。 虽然Swift这门语言仍然在不断的进化之中,而且变动还是比较大,苹果公司也不承诺目前所写代码会在将来兼容,但仍挡不住iOS开发者的热情。 为什么要使用Swift调
问题内容: 我已经在Swift中编写了一个库,但无法将其导入到用Objective-C编写的当前项目中。 有什么方法可以导入吗? 问题答案: 您需要导入。请注意,这是目标名称-其他答案会导致使用类名称的错误。 这个单个文件是一个自动生成的标头,它为项目中所有用注释或继承的Swift类定义了Objective-C接口。 注意事项: 如果您的目标名称包含空格,请用下划线替换(例如,成为) 如果目标是框
假设我在Swift中定义了一个泛型类,类似于以下内容: (我知道数组有一个稍微好一点的实现,这只是一个例子。) 在Swift中,我现在可以非常容易地使用这个类: 在Xcode 7中,我们现在在Objective-C中拥有泛型,所以我假设我可以在Objective-C中使用这个类: 然而,MyArray从未添加到我的<code>项目Swift中。h文件。即使我将其更改为从NSObject继承,它仍然
问题内容: 我正在尝试在我的Swift项目中使用第三方Objective- C库。我已经将该库成功导入到Xcode中,并且已经制作了一个文件,可以在Swift中使用Objective-C类。 但是,我似乎遇到了一个问题:Objective-C代码包含带有宏的文件。导入my 不会导致我的Swift应用程序可以使用的全局常量。 我做了一些研究,发现“复杂宏”下面的Apple文档说: “在Swift中,
问题内容: 我有一个这样的: 但我想将其转换为: 我怎样才能做到这一点? 问题答案: 逃避想要的角色还需要做更多的工作。 范例程式码 iOS7及以上: NSLog输出: escapedString:http%3A%2F%2Fwww 以下是有用的URL编码字符集: 创建一个结合以上所有内容的角色集: 创建一个Base64 对于Base64字符集: 对于Swift 3.0: 对于Swift 2.x:
问题内容: 我正在迁移课程,以便对Swift进行一些培训。我通过桥接头成功使用了Objective- C代码,但是我需要导入一个包含指令的常量文件。 我在结合Swift和Cocoa和Objective-C(简单宏)中看到以下内容: 简单宏 通常在C和Objective-C中使用指令定义原始常量的地方,在Swift中使用全局常量代替。例如,常数定义可以在Swift中使用更好地表达。由于简单的类似于常