Swift与OC交互
Swift与OC交互
源码请点击github地址下载。
主要功能:
- 1.在OC项目里:
- 1.1.OC代码调用Swift方法
- 1.2.Swift代码调用OC代码。
- 2.在Swift项目:
- 2.1.Swift代码调用OC代码
- 2.2.OC代码调用Swift方法。
不管在什么项目里,在创建另外一种开发语言文件时系统会提示创建桥接文件OCAndSwift-Bridging-Header.h(其中OCAndSwift代表项目名称。),一定得有这桥接文件swift代码才能调用OC。
- 功能1.1与2.2
他们都是OC代码调用Swift方法,不管是在什么项目中,使用方法都一样。只须在需要使用Swift方法的OC文件中倒入头文件 #import "OCAndSwift-swift.h"
即可,在任何oc文件中导入的头文件都一样,其中OCAndSwift代表项目名称。 - 功能1.2与2.1
他们都是Swift代码调用OC代码。
将OC代码所在头文件放在OCAndSwift-Bridging-Header.h文件里即可,可供任何位置的swift调用,如导入:#import "LXHelpClass.h"。
Swift代码调用OC方法如下:
func tappedButton(sender:UIButton!) {
self.myImageView.image = LXHelpClass.getEllipseImageWithImage(self.myImageView.image)
print(sender.tag, terminator: "swift")
}
@interface LXHelpClass : NSObject
+ (UIImage *)getEllipseImageWithImage:(UIImage *)originImage;
@end
OC控制器push到Swift控制器
#import "OCAndSwift-swift.h"
- (void)pushBtnClicked:(UIButton *)sender
{
SwiftController *swiftVC = [[SwiftController alloc] init];
[self.navigationController pushViewController:swiftVC animated:YES];
}
class SwiftController: UIViewController {
override func viewDidLoad() {
...
}
...
}