本文将演示在Swift文件中调用Object-C的类和方法。
在项目文件夹【DemoApp】上点击鼠标右键
->【New File】创建一个Object-C的类文件
->【Cocoa Touch Class】->【Next】->
【Class】:SumNumbers。输入类名。
【Subclass of】:NSObject,父类名称
【Language】:Object-C,类文件的默认语言
->【Next】->保存默认的存储位置点击【Create】
->系统提示是否创建桥接头文件,将Object-C类的头文件,放置在桥接头文件中,Swift就可以访问OC类。
->点击【Create Bridging Header】->此时系统自动创建了:
一个头文件【SumNumbers.h】
一个实现文件【SumNumbers.m】
一个桥接头文件【DemoApp-Bridging-Header.h】
->点击项目名称【DemoApp】,查看项目的配置信息
->打开编译设置面板【Building Settings】,需要确认是否已经配置了桥接头文件。
->搜索【Bridging-Header】,查看到桥接头文件以及自动引入。
->打开头文件【SumNumbers.h】
1 #import <Foundation/Foundation.h> 2 3 NS_ASSUME_NONNULL_BEGIN 4 5 @interface SumNumbers : NSObject 6 7 //在头文件中添加一个整形属性 8 @property (nonatomic, assign) int type; 9 //添加一个方法,传入两个参数,并返回两个整形参数的和 10 - (int)sum:(int)number1 andNumber2:(int)number2; 11 @end 12 13 NS_ASSUME_NONNULL_END
->打开实现文件【SumNumbers.m】,在类的实现文件中,实现头文件中定义的方法。
1 #import "SumNumbers.h" 2 3 @implementation SumNumbers 4 5 //添加头文件中定义的,获得两个整形数之和的方法 6 - (int)sum:(int)number1 andNumber2:(int)number2 7 { 8 //返回两个整形参数的和 9 return number1 + number2; 10 } 11 12 @end
->打开桥接头文件【DemoApp-Bridging-Header.h】
1 //在桥接头文件中 ,引入类的头文件 2 #import "SumNumbers.h"
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8 9 //使用Swift语法初始化OC类对象 10 let sumNumbers = SumNumbers() 11 //使用点语法,调用对象的求和方法 12 let result = sumNumbers.sum(1, andNumber2: 1) 13 //在控制台打印输出求和的结果 14 print("The result:\(result)") 15 } 16 }
在Swift类文件中,调用上文创建的OC类和方法。
因为已经在桥接头文件中,引入了OC头文件,所以可以直接调用该类。
Swift如何引用GitHub上的Object-C类库?
请点击文章继续进行深入学习: