Swift工程下混编
OC工程下混编请查看OC和Swift混编一
1.建一个Swift工程命名为SwiftTestOC
image.png
2.新建一个Swift文件命名为SwiftClass.swift
import UIKit
class SwiftClass: NSObject {
@objc func test3() {
print("OC调用Swift方法")
}
func test4() {
print("测试不加@objc的方法")
}
}
3.新建一个OC文件命名为OCClass,会弹出提示,选择Create Bridging Header建立桥接文件,系统会建立“工程名-Bridging-Header.h”
image.png
image.png
将OC文件的头文件加入到“工程名-Bridging-Header.h”
image.png
OCClass代码
#import <Foundation/Foundation.h>
@interface OCClass : NSObject
- (void)test1;
- (void)test2;
@end
#import "OCClass.h"
//系统生成头文件(command+鼠标左键可点进去查看)
#import "SwiftTestOC-Swift.h"
@implementation OCClass
- (void)test1{
NSLog(@"Swift调用OC方法");
}
//OC调用Swift方法
- (void)test2{
SwiftClass *sc = [[SwiftClass alloc] init];//创建swift对象
//OC调用swift方法
[sc test3];
//测试swift不加@objc的方法(不加@objc调不起方法)
//[sc test4];
}
@end
4.在swift文件中调用OC(ViewController代码)
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let funOC = OCClass()
//swift调用OC方法
funOC.test1()
//调用此方法,以便于OC调起swift文件方法
funOC.test2()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
总结: 在Swift工程中实现了互相调用功能
ViewController(Swift)--->OCClass(OC)--->SwiftClass(Swift)
网友评论