上下文类型'字符串'不能与数组文字一起使用 - Algolia Search

时间:2018-03-27 06:29:31

标签: swift xcode algolia

我正在尝试将我的代码转换为最新的swift版本,但我无法转换以下代码。

// @objc public var urlParameters:[String:String] = [:]

 let requestOptions = RequestOptions()
    requestOptions.urlParameters["optionalFilters"] = ["category:Book", "author:John Doe"]

enter image description here

我无法找到最佳解决方案。我该怎么办?

2 个答案:

答案 0 :(得分:0)

您的字典value参数为String,但您尝试设置String数组。为此,请将签名更改为字符串数组:

var urlParameters: [String: [String]] = [:]

答案 1 :(得分:0)

我假设您的urlParameter类型为

var urlParameters = [String: Any]()

在这里,您会发现urlParameters是带字符串键的字典类型,值是字符串数组。

第一方面,我们需要将其声明为:

var urlParameters = [String: [String]]()

<强>替代:

或者我们可以在AnyObject上使用[String]作为Swift 3中的更新:JSON集合(字典/数组)只能包含值类型。

  

Swift提供了两种特殊类型的别名,用于处理非特定类型:

     

AnyObject可以表示任何类类型的实例。

     

任何可以表示任何类型的实例,包括函数类型。

var urlParameters = [String: AnyObject]()