欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Swift_学习笔记_调用ObjectiveC方法

程序员文章站 2024-03-23 12:54:04
...
  • Swift是对ObjectiveC进行的封装,而且目前许多的第三方SDK以及第三方开源库都使用的ObjectiveC语言进行编写,因此许多的时候都需要Swift调用ObjectiveC内的方法。

下面简单的介绍下如何实现Swift调用ObjectiveC内的方法。

手动创建桥文件:

  • 创建一个Swift工程

    • 方式一:点击File->New->Project...
      Swift_学习笔记_调用ObjectiveC方法

    • 方式二:快捷键cmd+shift+N

    • 方式三:在Xcode欢迎页选择Creat a new Xcode project
    • 注意:在工程项目名字输入页,Language选择Swift
  • 创建桥文件

    • 点击File->New->File...或者快捷键cmd+N
    • 选择Header File,然后对其进行命名。
      Swift_学习笔记_调用ObjectiveC方法
    • 修改Xcode配置:TARGETS->Bulid Settings搜索Brid。如图所示:
      Swift_学习笔记_调用ObjectiveC方法
    • 将创建的Header File头文件路径在上图所示空格内进行赋值。
    • 记得将绝对路径修改为相对路径($SRCROOT),如图所示
    • 绝对路径图:
      Swift_学习笔记_调用ObjectiveC方法
    • 相对路径图:
      Swift_学习笔记_调用ObjectiveC方法
  • 创建ObjectiveC文件,或者导入需要的ObjectiveC第三方库。

  • 将需要的ObjectiveC头文件导入到创建的Header File文件内。
    Swift_学习笔记_调用ObjectiveC方法

  • 这里是在创建完桥文件之后,新创建的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_学习笔记_调用ObjectiveC方法

系统自动创建桥文件

  • 在创建完Swift工程之后,如果没有创建桥文件,而采用快捷键或者点击File->New->File...方式创建ObjectiveC文件(工程内无任何其它ObjectiveC文件),此时系统会进行如下提示:
    Swift_学习笔记_调用ObjectiveC方法

  • 点击Creat Bridging Header按钮,系统将会自动创建需要的桥文件(工程名称-Bridging-Header.h)SwiftMutualObjectiveC-Bridging-Header.h,并且会对Build Settings进行配置,配置效果,如图所示:
    Swift_学习笔记_调用ObjectiveC方法


注意:

  • 如果在手动创建ObjectiveC文件之前,已经导入了ObjectiveC文件,系统将不会提示是否创建桥文件,这时候需要手动创建桥文件。例如将AFN文件整体导入到工程之内,再创建ObjectiveC文件之后就没有提示创建桥文件。