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:')”
我猜是新的快速参数。
答案 0 :(得分:1)
这是通用功能,需要第二个参数(query
)符合GraphQLQuery
协议,并且需要关联的类型Data
。
我不知道该协议有哪些要求以及如何实现。因此,让我们假设:
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
)
答案 1 :(得分:0)
在我看来,您的函数中有一个未定义的参数“ forQuery”并不在寻找该函数被调用时要传递的任何值。
如上面的注释中所提到的,如何尝试调用该函数的示例将有助于增加该问题。对于任何希望帮助您回答问题的开发人员来说,信息都是一个很好的工具!
确保在调用函数时,所有参数都希望获得传递的值。示例:
public func write<Query: GraphQLQuery>(data: Query.Data, forQuery: pass in forQuery value here query: Query) throws {
try write(object: data, withKey: Query.rootCacheKey, variables: query.variables)
}