Skip to content

Commit

Permalink
Merge pull request #1048 from apollographql/add/watcher-note
Browse files Browse the repository at this point in the history
Add note about the store retaining the query watcher
  • Loading branch information
designatednerd authored Feb 29, 2020
2 parents d91c849 + 42ee606 commit 54547fd
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 1 deletion.
2 changes: 2 additions & 0 deletions Sources/Apollo/GraphQLQueryWatcher.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import Dispatch

/// A `GraphQLQueryWatcher` is responsible for watching the store, and calling the result handler with a new result whenever any of the data the previous result depends on changes.
///
/// NOTE: The store retains the watcher while subscribed. You must call `cancel()` on your query watcher when you no longer need results. Failure to call `cancel()` before releasing your reference to the returned watcher will result in a memory leak.
public final class GraphQLQueryWatcher<Query: GraphQLQuery>: Cancellable, ApolloStoreSubscriber {
weak var client: ApolloClientProtocol?
public let query: Query
Expand Down
2 changes: 1 addition & 1 deletion docs/source/caching.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ let watcher = apollo.watch(query: HeroNameQuery(episode: .empire)) { result in
}
```

> Remember to kill off watchers when their parent object is deallocated! This is not (presently) done automatically.
> **NOTE:** Remember to call `cancel()` on a watcher when its parent object is deallocated, or you will get a memory leak! This is not (presently) done automatically.
## Direct cache access

Expand Down

0 comments on commit 54547fd

Please sign in to comment.