NSDictionary 的 PromiseKit 看不见的类型转换

Posted

技术标签:

【中文标题】NSDictionary 的 PromiseKit 看不见的类型转换【英文标题】:PromiseKit unseen type conversion for NSDictionary 【发布时间】:2018-04-03 08:27:16 【问题描述】:

我正在尝试从我的路径中获取一个 json。一切似乎都是正确的(假设我来自 Swift 2 并尝试更新到 Swift 4)但是,事情似乎出了问题。

class func getPlayerStatuses(sportName: String) -> Promise<[NSDictionary]> 
    let path = "api/sports/player-status/\(sportName)/"
    return API.get(path).then  (json: NSDictionary) -> [NSDictionary] in
        let playerUpdates: [NSDictionary] = try json.get("player_updates")
        return playerUpdates
    

我收到以下错误。

Cannot convert value of type '(NSDictionary) throws -> [NSDictionary]' to expected argument type '(_) throws -> _'

有人知道为什么我会收到关于类型转换的错误吗?

【问题讨论】:

您使用什么版本的 PMK? @pacification PromiseKit 版本 6 【参考方案1】:

在PMK 6 中更改了返回非承诺值的方式(参见Why PromiseKit 5/6? 部分)。现在你应该使用map 而不是then 来完成这种工作。

【讨论】:

以上是关于NSDictionary 的 PromiseKit 看不见的类型转换的主要内容,如果未能解决你的问题,请参考以下文章

PromiseKit O-C 指南

PromiseKit 4 - 包装委托

PromiseKit pod 安装正确,但 import PromiseKit 返回错误?

PromiseKit 6.0 迁移

PromiseKit 手动安装

重新定义外部块(promiseKit)