gpt4 book ai didi

objective-c - 如何使用 SwiftPM 在 objective-c 模块中使用 swift 模块?

转载 作者:搜寻专家 更新时间:2023-11-01 05:35:41 28 4
gpt4 key购买 nike

这里是根目录的例子

├── Package.swift
└── Sources
├── Objc-cli
│   └── main.m
└── Swifty
└── MyStruct.swift

Swifty 模块只是一个简单的结构

// MyStruct.swift

public struct MyStruct {
public var text = "Hello, World!"

public init() {
}
}

Objc-cli 中,我尝试像这样链接 swift 模块。

// main.m

#import <Foundation/Foundation.h>
@import Swifty <---- Not found

int main() {
NSLog(@"Hello from Objc");
return 0;
}

这是 Package.swift 的样子:

// Package.swift

import PackageDescription

let package = Package(
name: "MyTest",
targets: [
Target(name: "Swifty", dependencies: []),
Target(name: "Objc-cli", dependencies: ["Swifty"]),
]
)

很遗憾,编译器无法识别 objective-c 模块中的 Swifty 模块。这是输出:

$ swift build
Compile Swift Module 'Swifty' (1 sources)
Compile Objc-cli main.m
/tmp/TestPackage/Sources/Objc-cli/main.m:10:9: fatal error: module 'Swifty' not found
@import Swifty
~~~~~~~^~~~~~
1 error generated.
<unknown>:0: error: build had 1 command failures

我是否错过了什么,或者现在根本不可能?

最佳答案

现在无法在 C 模块中导入 Swift 模块,它只能以另一种方式工作,将 C 导入 Swift。

您可以在 SwiftPM - C language targets 找到详细信息

关于objective-c - 如何使用 SwiftPM 在 objective-c 模块中使用 swift 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41122917/

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