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类
网友评论