gpt4 book ai didi

macos - Swift iTunes ScriptingBridge 链接器错误

转载 作者:行者123 更新时间:2023-11-28 07:09:15 25 4
gpt4 key购买 nike

我已经广泛搜索了这个问题的答案,但没有找到,所以我在这里问。我正在尝试使用 Swift 读取 iTunes 中的当前轨道,但每当我尝试引用任何 iTunes 类(iTunesApplication、iTunesTrack 等)时,我都会收到以下错误:

Undefined symbols for architecture x86_64:  
"_OBJC_CLASS_$_iTunesApplication", referenced from:
__TFC8WAILT_v213iTunesWrapper17getSongWithFormatfS0_FTSS3sepSS10timeOnLeftSb_SS in iTunesWrapper.o
__TMaCSo17iTunesApplication in iTunesWrapper.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

知道为什么会这样吗?

谢谢,
-tlf
附言如果我使用 Obj-C,它工作得很好。它仅在我使用 Swift 时出错。

最佳答案

由于 Swift 的强静态类型,它在链接没有实现或二进制代码的代码时会出现问题。因此,要将 Objective-C Bridging Header 与它一起使用,您很可能需要使用通用 SBObject,因为 Swift 知道它们的实现,即使您的 .h 声明了其他类。

另一种方法是使用脚本生成一个 native Swift 文件,其中包含它可以查看和使用的声明。 Here是一个 Python 脚本(完全披露:它是我的),它生成 Objective-C Scripting Bridge header ,然后创建一个 native Swift 版本。这避免了链接器错误和前面提到的 SBObject 泛型类型。

关于macos - Swift iTunes ScriptingBridge 链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29135027/

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