swift - 如何使用命名参数调用函数

标签 swift

    public func write<Query: GraphQLQuery>(data: Query.Data, forQuery query: Query) throws {
      try write(object: data, withKey: Query.rootCacheKey, variables: query.variables)
    }

如何调用这个函数?几次尝试都给了我编译器错误:“调用中的参数标签不正确(有'data:forQuery:',预期'object:withKey:')”

我猜是 swift 参数的新手。

最佳答案

这是一个通用函数,需要第二个参数(query)来符合 GraphQLQuery 协议(protocol),这需要关联类型 Data

我不知道这个协议(protocol)有什么要求以及它是如何实现的。因此,让我们假设例如:

protocol GraphQLQuery {
    associatedtype Data
}
struct MyQuery: GraphQLQuery {
    typealias Data = Int
}
let query = MyQuery()
try? write(data: 0, forQuery: query)

or

do {
    try write(data: 0, forQuery: query)
} catch { ... error handling }

所以现在要调用函数,我们需要传递我们的查询和该查询能够使用的数据(在我的示例中为 Int)

关于swift - 如何使用命名参数调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55304819/

相关文章:

swift - 接收与 IF 语句相关的线程 1 错误

ios - AWS SNS 无法使用 createPlatformEndpoint

ios - 我在 Swift 应用程序中的哪里存储文件选项?

ios - 将完成按钮添加到 UITableViewCell 中的数字键盘

ios - 如何以编程方式在 tableview swift 2.2 中隐藏或删除额外的单元格和分隔符

php - 如何将数据从 Xcode 8 发送到 PHP MySQL 数据库?

ios - 如何从导航堆栈中弹出前一个 View Controller ?

ios - 无法导入桥接头 '/MyProject-Bridging.h'

ios - ScrollView 和堆栈 View

ios - 如何为 iOS Mobile SDK 生成许可证 key