Swift
是对ObjectiveC
进行的封装,而且目前许多的第三方SDK
以及第三方开源库都使用的ObjectiveC
语言进行编写,因此许多的时候都需要Swift
调用ObjectiveC
内的方法。
下面简单的介绍下如何实现Swift
调用ObjectiveC
内的方法。
手动创建桥文件:
创建一个
Swift
工程方式一:点击
File->New->Project...
。
方式二:快捷键
cmd+shift+N
。- 方式三:在
Xcode
欢迎页选择Creat a new Xcode project
。 - 注意:在工程项目名字输入页,
Language
选择Swift
。
创建桥文件
- 点击
File->New->File...
或者快捷键cmd+N
。 - 选择
Header File
,然后对其进行命名。
- 修改
Xcode
配置:TARGETS->Bulid Settings
搜索Brid
。如图所示:
- 将创建的
Header File
头文件路径在上图所示空格内进行赋值。 - 记得将绝对路径修改为相对路径(
$SRCROOT
),如图所示 - 绝对路径图:
- 相对路径图:
- 点击
创建
ObjectiveC
文件,或者导入需要的ObjectiveC
第三方库。将需要的
ObjectiveC
头文件导入到创建的Header File
文件内。
这里是在创建完桥文件之后,新创建的
ObjectiveC
文件,其内代码如下:
// .h
@interface OCFileClass : NSObject
- (void)sayHello;
- (NSDictionary *)sayDictionary:(NSDictionary *)dictionary;
@end
// .m
#import "OCFileClass.h"
@implementation OCFileClass
- (void)sayHello{
NSLog(@"Hello");
}
- (NSDictionary *)sayDictionary:(NSDictionary *)dictionary{
NSLog(@"%@",dictionary);
return @{@"aa":@"11",@"bb":@"22"};
}
@end
- 调用效果截图如下:
- 在编写调用代码的时候,如果不提示,可以先编译一下
cmd+B
。
- 在编写调用代码的时候,如果不提示,可以先编译一下
系统自动创建桥文件
在创建完
Swift
工程之后,如果没有创建桥文件,而采用快捷键或者点击File->New->File...
方式创建ObjectiveC
文件(工程内无任何其它ObjectiveC
文件),此时系统会进行如下提示:
点击
Creat Bridging Header
按钮,系统将会自动创建需要的桥文件(工程名称-Bridging-Header.h
)SwiftMutualObjectiveC-Bridging-Header.h
,并且会对Build Settings
进行配置,配置效果,如图所示:
注意:
- 如果在手动创建
ObjectiveC
文件之前,已经导入了ObjectiveC
文件,系统将不会提示是否创建桥文件,这时候需要手动创建桥文件。例如将AFN
文件整体导入到工程之内,再创建ObjectiveC
文件之后就没有提示创建桥文件。