查询
查询是最常用的GraphQL 操作。一个 查询用于从 GraphQL 服务器获取数据。 Apollo iOS 允许您使用安全、生成的查询模型从服务器获取查询操作。在 Apollo iOS 中,查询还可以用于监听本地数据的变化,从而实现响应式。
有关 GraphQL 查询的更多信息,我们建议 阅读此指南。
获取查询
在定义并生成了 query 模型(见 "定义操作" ),您可以使用 ApolloClient.fetch(query:)
获取您的 query。
有关获取 GraphQL 操作的更多信息,请参阅 "获取数据"。
监视查询
查询还可以使用 ApolloClient.watch(query:)
进行监控。监视查询与获取查询非常相似。主要区别是,您不仅会收到一个初始结果,而且每当相关数据在缓存中发生变化时,您的结果处理程序将被调用:
let watcher = apollo.watch(query: HeroNameQuery()) { result inguard let data = try? result.get().data else { return }print(data.hero?.name) // Luke Skywalker}
如果本地缓存中的查询数据发生任何变化,结果处理器将被再次调用。
当你调用ApolloClient.watch(query:)
时,会返回一个 GraphQLQueryWatcher
,直到在监控器上调用 cancel()
方法,查询数据的更改都会被监控。
注意:记住当监控器的父对象被释放时,调用 cancel()
,否则你将得到一个内存泄漏!