迁移后Contentful SDK代码的问题

时间:2017-08-09 20:29:39

标签: xcode swift3 sdk contentful

请参阅下面的代码我遇到了问题。我已经添加了大部分功能,即使我只是在第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行中收到错误。请参阅下面的错误

参数标签'(__:,_:)'不匹配任何可用的重载

1 个答案:

答案 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中的标签和参数名称。