Swift升级适配Algolia Search遇类型错误:数组字面量无法匹配String类型
解决Swift升级中Algolia RequestOptions的urlParameters赋值错误
这个错误的根源很清晰:你定义的urlParameters是[String: String]类型的字典,意味着每个键对应的必须是单个字符串值,但你给"optionalFilters"赋值了一个字符串数组["category:Book", "author:John Doe"],Swift自然会抛出类型不匹配的错误。
针对Algolia的optionalFilters参数,正确的处理方式是把多个过滤条件合并成一个用逗号分隔的字符串——因为Algolia的API要求这个参数的值就是逗号分隔的过滤表达式。你可以用Swift数组的joined(separator:)方法快速完成转换:
// @objc public var urlParameters: [String: String] = [:] let requestOptions = RequestOptions() requestOptions.urlParameters["optionalFilters"] = ["category:Book", "author:John Doe"].joined(separator: ",")
转换后,optionalFilters对应的值就变成了"category:Book,author:John Doe",既符合String类型的要求,也能被Algolia的API正确解析。
内容的提问来源于stack exchange,提问作者Ravindhiran
相关产品推荐
相关产品推荐

