OC工程下混编
Swift工程下混编请查看OC和Swift混编二
1.建一个OC工程命名为OCTestSwift

2.配置工程
-
设置Defines Module 为Yes
image.png
-
设置Product Module Name 为当前工程名
image.png
注意:此时系统会为工程创建一个“工程名-Swift.h”的文件,此文件不可手动创建,必须使用系统创建的
3.新建一个OC文件命名为OCClass
#import <Foundation/Foundation.h>
@interface OCClass : NSObject
- (void)test3;
@end
#import "OCClass.h"
@implementation OCClass
- (void)test3{
NSLog(@"Swift调用OC方法");
}
@end
4.新建一个swfit文件命名为SwiftClass.swift,会弹出提示,选择Create Bridging Header建立桥接文件,系统会建立“工程名-Bridging-Header.h”



SwiftClass代码
import UIKit
class SwiftClass: NSObject {
func test1()
{
print("OC调用Swift方法")
}
//swift调用oc方法
func test2()
{
let funOC = OCClass()
funOC.test3()
}
}
5.在OC文件中调用swift(ViewController代码)
注意:在调用方法时如果没有提示,可先编译一下
#import "ViewController.h"
//系统生成头文件(command+鼠标左键可点进去查看)
#import "OCTestSwift-Swift.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
SwiftClass *swiftClass = [[SwiftClass alloc]init];
//OC调用swift方法
[swiftClass test1];
//调用此方法,以便于swift调起OC文件方法
[swiftClass test2];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
总结: 在OC工程中实现了互相调用功能
ViewController(OC)--->SwiftClass(Swift)--->OCClass(OC)
网友评论