Swift 和 ScriptingBridge.framework

Akk*_*kki 5 macos itunes objective-c scripting-bridge swift

在我的 Swift 项目中,我需要通过ScriptingBridge框架与 iTunes 通信。根据 Apple 文档,我使用 .createiTunes.h文件sdef /Applications/iTunes.app | sdp -fh --basename iTunes,然后将 ScriptingBridge.framework 链接到项目并使用#import "iTunes.h".

但是当我尝试获取任何 iTunes 应用程序属性时,例如

var iTunesApp: iTunesApplication? = SBApplication.applicationWithBundleIdentifier("com.apple.iTunes") as? iTunesApplication
let currentTrack: iTunesTrack? = iTunesApp?.currentTrack
Run Code Online (Sandbox Code Playgroud)

我收到链接器错误,例如

Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_iTunesApplication", referenced from:
  __TFC5NowP_14iTunesWorker21fetchCurrentTrackInfofS0_FT_T_ in iTunesWorker.o
  __TFC5NowP_14iTunesWorkercfMS0_FT_S0_ in iTunesWorker.o
  _get_field_types_iTunesWorker in iTunesWorker.o
"_OBJC_CLASS_$_iTunesTrack", referenced from:
  __TFC5NowP_14iTunesWorker21fetchCurrentTrackInfofS0_FT_T_ in iTunesWorker.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

我使用 Xcode 6 beta 4。有什么想法吗?

Akk*_*kki 0

我发现当我使用 获取属性时链接器错误消失了valueForKey(key: String?)。所以这个问题看起来像是 Swift beta 版本的缺陷。