- https://www.jianshu.com/p/7711a1ecc89d?from=timeline&isappinstalled=0
- swfit、oc混编
Swift项目混编OC
1.swift类中引用oc类及方法,oc文件copy到swift工程,自动生成桥文件
2.在Swift的项目里,并不会有提示让你去建立OC-Swift桥接文件。那么我们怎样在OC类中去调用Swift呢?请看图六,在Objective-C Bridging Header下面的一行Objective-C Generated Interface Header Name,这个就是OC-Swift桥接文件声明的地方。可以看到其命名为XLLSwiftOCMaxTest-Swift.h。
❗️如果第2步失败:build setting下的Objective-C Generated Interface Header Name选项对应的value设置为$(SWIFT_MODULE_NAME)-Swift.h,然后重新进行编译
//
// NSString+security.h
//
#import <Foundation/Foundation.h>
@interface NSString (security)
- (NSString*) test1;
+ (NSString*) test2;
@end
//
// NSString+security.m
//
#import "NSString+security.h"
@implementation NSString (security)
- (NSString*) test1
{
return @"test1";
}
+ (NSString*) test2
{
return @"test2";
}
@end
在桥文件中,引入oc代码的头文件
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import "NSString+security.h"
在swift中使用。
//
// ViewController.swift
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
/*
(1)oc文件copy到swift工程,自动生成桥文件
(2)在桥文件中,引入oc代码的头文件
(3)在swift中使用。
*/
// 调用oc文件中的方法
let test:NSString = "test"
print(test.test1())
print(NSString.test2())
}
}