统一Swift API:使用未声明的T型

时间:2018-07-09 18:01:01

标签: swift generics type-resolution

我正在遵循约翰·桑德尔(John Sundell)的帖子(https://www.swiftbysundell.com/posts/providing-a-unified-swift-error-api),该帖子使用了不错的perform函数来创建统一的错误API

func perform(_ expression: @autoclosure () throws -> T,
                orThrow error: Error) throws -> T {
    do {
        return try expression()
    } catch {
        throw error
    }
}

func someFunction(url: URL) throws -> Data {
    ...
    return try perform(Data(contentsOf: url), 
                       orThrow: SearchError.dataLoadingFailed(url))
}

但这给我Use of undeclared type的{​​{1}}错误。 Xcode是否不应该通过查看传入的函数的返回类型来找出T类型?

1 个答案:

答案 0 :(得分:3)

您需要声明函数签名中使用的任何类型参数:

<input type="file" name="myImage" accept="image/x-png,image/gif,image/jpeg" />