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/