首先,混编这里分为两种情况分别说明,一种是Objective-C项目中添加Swift代码,一种是Swift项目添加Objective-C代码。
第一次添加一个
在Swift类中添加如下代码
检查

这里有两个文件名,一个是上面说的一个,一个是
在
第一次添加一个
桥接形式如上面的
这里有两个文件名,一个是上面说的一个,一个是
调用方式和上面的
Objective-C 项目 添加 Swift 代码
Objective-C 调用 Swift
第一次添加一个
swift
文件的时候,xcode
会问开发者要不要添加一个bridge
,我们需要添加这样一个桥接。选择是就好了。然后会生成一个"ProductName"+"-Bridging-Header.h"
。在Swift类中添加如下代码
import Foundation
class TestSwift: NSObject {
func test() -> String {
return "test";
}
}
检查
Build Setting
,如图所示这里有两个文件名,一个是上面说的一个,一个是
"ProductName"+"-Swift.h"
。这个文件名就是在需要调用Swift
文件的时候引用的头文件,编译器会自动处理,添加或者删除Swift
类的时候,编译器会自动处理此文件。ViewController.m
在调用Swift
类的时候的代码#import "ViewController.h"
#import "OCAddSwift-Swift.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
TestSwift *test = [[TestSwift alloc] init];
NSString *str = [test test];
NSLog(@"%@",str);
[test testNew];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Swift 调用 Objective-C 代码
在
"ProductName"+"-Bridging-Header.h"
中添加 Swift
需要调用的Objective-C
头文件。这里添加的是TestData.h
。import Foundation
class TestSwift: NSObject {
func test() -> String {
return "test";
}
func testNew() {
let test1 = TestData();
print(test1.testNumber);
}
}
Swift 项目调用 Objective-C 代码
Swift 调用 Objective-C 代码
第一次添加一个
Objective-C
文件的时候,xcode
会问开发者要不要添加一个bridge
,我们需要添加这样一个桥接。选择是就好了。然后会生成一个"ProductName"+"-Bridging-Header.h"
。桥接形式如上面的
swift
调用 Objective-C
一致。链接Objective-C 调用 Swift
这里有两个文件名,一个是上面说的一个,一个是
"ProductName"+"-Swift.h"
。这个文件名就是在需要调用Swift文件的时候引用的头文件,编译器会自动处理,添加或者删除Swift类的时候,编译器会自动处理此文件。调用方式和上面的
Objective-C
调用 Swift
一致。链接
评论
发表评论