iOS:OC与Swift互调

Swift访问OC OC访问Swift
不需要在Swift中import OC的类,统一在桥接文件(ProductName-Bridging-Header.h)中导入需要暴露给Swift的OC类即可在Swift中访问。 在OC类中导入ProductName-Swift.h文件,即可访问Swift中暴露给OC的属性和方法。

OC中如何访问Swift的类

build setting

在需要使用Swift的地方,导入工程名-Swift.h,就可以愉快的使用Swift了。

注意:
1、Swift4.0中想要暴露给OC的方法和属性前面都需添加@objc
2、Swift的class需要继承与NSObject。

如:定义一个Person类
import UIKit

class Person: NSObject {
    
    @objc var name: String
    @objc var age: Int

    @objc init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
}
调用:
#import "ViewController.h"

#import "MZDemo-Swift.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    Person *per = [[Person alloc] initWithName:@"hello" age:11];
    NSLog(@"%@ --- %ld", per.name, per.age);
    
}

@end

Swift中如何访问OC的类

当我们第一次在工程中创建一个OC文件,Xcode会提示你是否创建桥接文件,点击‘是’,Xcode会帮我们给每一个Target建立对应的桥接文件(用于在Swift中访问OC的类)。
在桥接文件中导入Swift需要访问的OC类,.Swift文件中即访问OC的类了。

如下图:


把需要暴露给Swift的OC头文件导入桥接文件里

在Swift里调用OC类

你可能感兴趣的:(iOS:OC与Swift互调)