1. 先创建一个OC工程 OC_Swift_BlendTestDemo
2. 创建一个PersonClass类,类实现文件里实现一下sayHello
#import <Foundation/Foundation.h>
@interface PersonClass : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, assign) NSInteger age;
@property (nonatomic, copy) NSArray * classes;
-(void)sayHello;
@end
3. 创建一个 StudentClass 类,基于Swift语言,继承至PersonClass类,期间会弹出以下提示:
点击Creat Bridging Header选项,Xcode会自动创建 XXX-Bridging-Header.h 文件(XXX指工程名)
import Foundation
class StudentClass: PersonClass {
}
4. 创建一个PCH文件 PrefixHeader.pch ,记得检查Building Settings里的Prefix Header和Objective-C Bridging Header两个路径,
5. 第4部之后,就可以Swift和OC就可以互相调用了,给StudentClass添加一个方法 printInfo
import Foundation
class StudentClass: PersonClass {
func printInfo() -> Void {
super.sayHello() // 调用OC方法
print(self.name)
print(self.age)
print(self.classes)
}
}
StudentClass *std = [[StudentClass alloc] init];
std.name = @"Tom";
std.age = 19;
std.classes = @[@"Math",@"English"];
[std printInfo];
打印结果: