Как вызвать функцию с именованным параметром - PullRequest
0 голосов
/ 22 марта 2019
    public func write<Query: GraphQLQuery>(data: Query.Data, forQuery query: Query) throws {
      try write(object: data, withKey: Query.rootCacheKey, variables: query.variables)
    }

Как мне вызвать эту функцию? Несколько попыток привели меня к ошибке компилятора: «неверные метки аргументов в вызове (имеют« data: forQuery: », ожидаемый« объект: withKey: ') »

Впервые на быстрые параметры.

Ответы [ 2 ]

1 голос
/ 22 марта 2019

Это общая функция, которая требует, чтобы второй параметр (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 в моем примере)

0 голосов
/ 22 марта 2019

Мне кажется, что в вашей функции есть аргумент, который не определен, "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)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...