我在OC工程中调用Swift的记录

心情
今天早晨在地铁站倒霉的遇到一个泼妇,虽然我很不愿意用这个词来形容一个妇女,但确实找不到合适的词来形容她,作为一个男人,我虽没有温文尔雅的举止,也不是特别的绅士,但还是一个很讲道理,很文明的人。本来想抽她几巴掌吧,回头想想和自己的形象不服,你和她讲道理吧,和泼妇是没有道理可讲的,只能自认倒霉,好在我们社会和谐,文明,这种泼妇形象的还是比较的少。我是大度之人,她影响了我一个小时的心情(还没到公司,导致我上班迟到了),到公司马上调整心态,开始上班。果然心情调整的极佳,昨天研究的在OC中调用Swift失败,今天一早就成功了,下面是我的调用记录。
1. 首先新建一个工厂 TestOCCallSwift

这里写图片描述

2. 然后在工程下面的Target中Build Setting中搜索defines module

这里写图片描述

3. Build Setting中搜索product module name, 确定其值和工程名称一致,若不一致的话,搜索product name, 将它的值修改为工程名称

这里写图片描述

4. 然后在工程中的Swift文件(我自己新建的一个文件夹)夹下创建一个Swift文件Student.swift, 在第一次创建swift文件的时候,会生成一个桥接文件,我们选择Create Bridging Header

这里写图片描述

5. 创建好的swift文件以及桥接文件如图所示

这里写图片描述

6. 在Student.swift文件中添加一些代码:
import Foundation

public class Student:NSObject {
    public var name:String?
    public var age:NSInteger

    init(name: String, age: NSInteger) {
        self.name = name
        self.age = age
    }

    public func printInfo() {
        print(self.name!, self.age)
    }
}

7. 然后在ViewController中调用,调用的时候,引入桥接文件以及-Swift.h文件,如果不成功的话,可以先编译一下工程,再引用。代码如下:
#import "ViewController.h"
#import "TestOCCallSwift-Bridging-Header.h"
#import "TestOCCallSwift-Swift.h"

@interface ViewController ()
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    Student *stu = [[Student alloc] initWithName:@"张三" age:25];
    [stu printInfo];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

@end
无论遇到什么不开心的事,及时的调整自己的心情,改变不了别人,那就改变自己,改变自己的心情,没有必要为那些不开心的事而烦恼,人生路漫漫,还有更多的美好的事物在等待着你。
要在Objective-C工程调用Swift库,需要执行以下步骤: 1. 创建Swift库和Objective-C工程 首先,您需要创建一个Swift库和一个Objective-C工程。在Xcode中,选择File > New > Project,然后选择Swift库和Objective-C工程分别创建它们。 2. 添加Swift库到Objective-C工程 在Objective-C工程中,选择File > Add Files to "工程名",然后选择Swift库的文件。确保选择“Copy items if needed”选项,以便将Swift库文件复制到Objective-C工程中。 3. 创建一个桥接文件 在Objective-C工程中,创建一个桥接文件,用于将Swift库导入Objective-C工程。选择File > New > File > Header File,然后将其命名为“工程名-Bridging-Header.h”。 4. 导入Swift库到桥接文件中 打开桥接文件“工程名-Bridging-Header.h”,添加以下代码: #import "Swift库名称-Swift.h" 这将导入Swift库到Objective-C工程中。 5. 调用Swift库中的方法 现在,您可以在Objective-C代码中调用Swift库中的方法了。首先,确保在需要调用Swift库的Objective-C文件中导入桥接头文件: #import "工程名-Bridging-Header.h" 然后,您可以使用以下代码调用Swift库中的方法: Swift库类名 *swiftObj = [[Swift库类名 alloc] init]; [swiftObj Swift方法名称]; 注意:Swift库中的类和方法必须使用@objc修饰符进行标记,以便它们可以在Objective-C代码中使用。例如: @objc class Swift库类名: NSObject { @objc func Swift方法名称() { // Swift方法代码 } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值