objective-c - Swift 2 中的 iTunes 脚本桥 - 无法专门化非泛型类型

标签 objective-c swift scripting-bridge

我正在尝试转换 sdef 生成的 Scripting Bridge header 和sdp到 Swift 中,以便能够在没有桥接头和 obj-c 包装器的情况下使用它。我想在 SwiftingBridge 的帮助下我已经非常接近了但我仍然面临 SBElementArray<iTunesAirPlayDevice> 类型的属性或返回值的问题和NSArray<iTunesAirPlayDevice>例如。如果我让他们这样我就会面临问题Cannot specialize non-generic type 'SBElementArray'等等。

我可以将那部分 Objective-C 代码转换为 Swift 吗?

Objective-C 代码示例:

// The application program
@interface iTunesApplication : SBApplication

- (SBElementArray<iTunesAirPlayDevice *> *) AirPlayDevices;
- (SBElementArray<iTunesBrowserWindow *> *) browserWindows;
- (SBElementArray<iTunesEncoder *> *) encoders;
- (SBElementArray<iTunesEQPreset *> *) EQPresets;
- (SBElementArray<iTunesEQWindow *> *) EQWindows;
- (SBElementArray<iTunesPlaylistWindow *> *) playlistWindows;
- (SBElementArray<iTunesSource *> *) sources;
- (SBElementArray<iTunesVisual *> *) visuals;
- (SBElementArray<iTunesWindow *> *) windows;
// ...
@property (copy) NSArray<iTunesAirPlayDevice *> *currentAirPlayDevices;  // the currently selected AirPlay device(s)
// ...

最佳答案

我只需更改代码以返回 native ​​数组对象即可使其工作:

@objc protocol iTunesApplication {
//...
optional func AirPlayDevices() -> [iTunesAirPlayDevice]
optional func browserWindows() -> [iTunesBrowserWindow]
optional func encoders() -> [iTunesEncoder]
optional func EQPresets() -> [iTunesEQPreset]
optional func EQWindows() -> [iTunesEQWindow]
optional func playlistWindows() -> [iTunesPlaylistWindow]
optional func sources() -> [iTunesSource]
optional func visuals() -> [iTunesVisual]
optional func windows() -> [iTunesWindow]
optional var AirPlayEnabled: Bool {get}
//...
}

关于objective-c - Swift 2 中的 iTunes 脚本桥 - 无法专门化非泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34087771/

相关文章:

ios - Swift 3.0 AVAudioPlayer 通过音乐播放音频

swift - 为什么 nil 合并运算符 ??返回零?

arrays - 使用 UISearchBar 过滤数组

没有 __dict__ 的 Python 打印属性

c - 如何在 MacRuby 中创建 C 指针?

ios - 从核心数据中删除记录不起作用?

objective-c - 如何为 UIAlertView 中的按钮编写事件处理程序?

objective-c - 开始使用 ScriptingBridge 应用程序 Cocoa/Objective-C 时遇到问题

iphone - 右侧的 UITableView 部分标题而不是左侧的默认值

ios - 从另一个选项卡栏 Controller 访问内容时发送到实例的无法识别的选择器