[Xcode10 实际操作]九、实用进阶-(6)在Swift文件中调用Object-C的类和方法

本文将演示在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类库?

请点击文章继续进行深入学习:

[Xcode10 实际操作]七、文件与数据-(22)使用OCR光学字符识别技术识别银行卡号码

猜你喜欢

转载自www.cnblogs.com/strengthen/p/10085438.html