gpt4 book ai didi

在 C 测试套件中调用 Swift 代码

转载 作者:可可西里 更新时间:2023-11-01 02:05:31 26 4
gpt4 key购买 nike

我目前正在开发一个 Swift 库,它有一个已经用 C 编写的版本。由于 C 版本已经有一个大型测试套件,我只想通过 C 测试运行 Swift 代码。

是否可以在 C 中调用 Swift?

最佳答案

要从 C 调用 Swift,可以将 Swift 代码包装在可从 C 调用的 Objective-C 函数中。下面是一个简单的设计示例。

快速代码:

import Foundation

@objc public class ClassSwift : NSObject {
public func addIntegers(int1:Int32, int2:Int32) -> Int32 {
return int1 + int2;
}
}

Objective-C 包装器:

// Mixed 1a is the name of my sample target
// You can see the name of your Swift header in
// Objective-C Generated Interface Header Name under Build Settings.
#import "Mixed_1a-Swift.h"

// This function is callable from C, even though it calls Swift code!
int addIntsC(int i1, int i2)
{
ClassSwift * cs = [[ClassSwift alloc] init];
return [cs addIntegersWithInt1:i1 int2:i2];
}

最后,这是 C 代码:

#include <stdio.h>

int addIntsC(int, int);

int main(int argc, const char * argv[]) {
int result = addIntsC(3, 7);
if (result == 10) puts("Test passed!");
else puts("Failed... :(");
return 0;
}

关于在 C 测试套件中调用 Swift 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43101701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com