上下文类型'AnyObject'不能与字典文字一起使用?

And*_*e M 32 swift swift2

我正在尝试将Objective-C示例转换为Swift 2,但我遇到了一个小问题.最初的Objective-C片段:

NSMutableArray *inputsOutputs = [NSMutableArray array];
...
[inputsOutputs addObject:@{@"input" : input, @"output" : trackOutput}];
Run Code Online (Sandbox Code Playgroud)

我认为Swift代码应该是:

var inputsOutputs = [Any?]()
...
inputsOutputs.append([ "input": input, "output": trackOutput ])
Run Code Online (Sandbox Code Playgroud)

产生的错误是:

Contextual type 'AnyObject' cannot be used with dictionary literal?
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如何将Objective-C转换为Swift?

原始目标-C:https://developer.apple.com/library/mac/samplecode/avsubtitleswriterOSX/Listings/avsubtitleswriter_main_m.html

vad*_*ian 38

您可以看到数组的内容是带有String键和未知值的字典.

因此声明数组更具体

var inputsOutputs = [[String:AnyObject]]()
Run Code Online (Sandbox Code Playgroud)

在Swift 3中为JSON集合类型或者如果字典/数组仅包含值类型使用

var inputsOutputs = [[String:Any]]()
Run Code Online (Sandbox Code Playgroud)