请参阅下面的代码我遇到了问题。我已经添加了大部分功能,即使我只是在第3行中得到错误。只是为了更好地理解我想要做的事情。
func getTopArticles(_ vc: ArticleListViewController, subCatId: String) {
var articleDict = [String: Article]()
Constants.CLIENT.fetchEntries(["content_type":Constants.CONTENT_TYPE_ARTICLE,
"fields.top10Listing.sys.id":subCatId, "order":Constants.SORT_CREATED_AT_DESCENDING]) { //Getting error here
switch $0 {
case let .success(articleResult):
if articleResult.items.isEmpty {
vc.noTopArticlePresent()
}
else{
for articleEntry in articleResult.items {
let article = Article (entry:articleEntry)
vc.art.append(article)
// store into search cache
Constants.ARTICLE_CACHE.fetch(key: "articles").onSuccess({ (result) in
if let dictValue = result as? [String:Article]
{
articleDict = dictValue
articleDict[article.articleId] = article
}
Constants.ARTICLE_CACHE.set(value: articleDict, key: "articles")
}).onFailure({ (error) in
Constants.ARTICLE_CACHE.set(value: articleDict, key: "articles")
})
}
Constants.CACHE.set(value: NSKeyedArchiver.archivedData(withRootObject: vc.art), key: subCatId)
DispatchQueue.main.async {
vc.dothis()
}
}
}
}
在第3行中收到错误。请参阅下面的错误
参数标签'(__:,_:)'不匹配任何可用的重载
答案 0 :(得分:0)
您缺少方法调用的参数标签matching
。
功能签名为fetchEntries(matching:completion)
以上面的例子为例,添加我们的调用如下所示:
Constants.CLIENT.fetchEntries(matching:
["content_type": Constants.CONTENT_TYPE_ARTICLE,
"fields.top10Listing.sys.id":subCatId, "order":Constants.SORT_CREATED_AT_DESCENDING]) { (result: Result<ArrayResponse<Entry>>) in // Or anonymous argument $0 as you were using in your example.
通常,如果您看到错误告诉参数标签不匹配,您可以在源代码中找到声明并进行比较,看看是否与传入的参数的命名不匹配。查看有关参数的更多信息Swift here中的标签和参数名称。